에서 타이어 캘린더 2560 태국 달력에 해를 2017 대응을 항상 543년 앞서 그레고리력이다.
관찰자 코더들은 2560이 10과 같다는 것을 주목할 것입니다 2^9 * 5
. 이것은 896 년 동안 다시는 일어나지 않을 것입니다! 정확히 10 개의 주요 요소가 있다면 1 년을 끈기있게 부릅니다 .
시스템 시계를 기준으로 태국 달력을 사용하여 현재 연도가 끈질긴 경우 참 값을 출력하고 그렇지 않으면 거짓 값을 출력하는 프로그램을 작성하십시오.
테스트 사례 :
- 2017 년에 프로그램이 실행되면
true
- 프로그램이 2018 년에서 2912 년 사이에 실행 된 경우,
false
- 2913 동안 프로그램이 실행되면
true
(2913 + 543 =2^7 * 3^3
)
답변
Bash + coreutils, 35 바이트
factor $[`date +%Y`+543]|awk NF==11
출력은 비어 있지 않은 문자열 (truthy)이거나 빈 문자열 (false)입니다.
대체 버전 : 37 바이트
date -d 543year +%Y|factor|awk NF==11
골프는 아니지만 나는 이것을 좋아합니다.
작동 원리
산술 확장 $[
날짜 + % Y 는 현재 (전체) 연도를 얻기 위해 +543]
실행 date +%Y
되며 연도에 543 을 추가합니다 .
인수는 합을 인수로 취하여 소인수 분해를 인쇄합니다. 먼저 인수 분해 할 숫자와 개별 소인수 목록입니다.
마지막으로 awk는 입력을 필터링하여 정확히 11 개의 필드 (숫자에 10 개의 주요 요소)가있는 행만 인쇄합니다.
답변
05AB1E , 10 바이트
žg543+ÒgTQ
설명
Òg # the number of primefactors with duplicates of
žg # the current year
543+ # plus 543
TQ # equals 10
답변
CJam , 13 바이트
et0=543+mf,A=
설명
et0= e# Get current year.
543+ e# Add 543.
mf e# Get prime factors with multiplicity.
, e# Get length.
A= e# Equals 10?
답변
Mathematica, 37 31 바이트
lanlock4 로 인해 5 바이트가 저장되었습니다 .
PrimeOmega[#&@@Date[]+543]==10&
익명의 기능. 입력 및 리턴 True
또는 False
출력을 취하지 않습니다 .
답변
Pyth, 11 바이트
qlP+543.d3T
설명
.d3 get current year
+543 add 543
P get prime factors of result
l count number of prime factors
q T check if equal to 10 (result is implicitly printed)
답변
답변
파이썬 2 , 92 89 바이트
Jonathan Allan 덕분에 -3 바이트
import time
y=time.gmtime()[0]+543
c=i=1
exec"i+=1\nwhile 1>y%i:y/=i;c-=1\n"*y
print-9==c
온라인으로 사용해보십시오!
연도까지 반복하여 주요 요소를 추출 (및 발신)합니다.
exec 행은 다음과 같습니다.
for i in range(2,y):
while not(y%i):
y=y/i
c=c-1