PHP, 111 68 66
$a=date(Y)+543;for($i=2;$i<$a;)$b+=$a%$i?!++$i:!!$a/=$i;echo$b==9;
주요 요인의 수를 직접 계산합니다.
$a=date(Y)+543; // current year
for($i=2;$i<$a;) // while $i lower than the year
$b+=$a%$i?!++$i:!!$a/=$i; // if $i divides $a: $a/=$i and ++$b | if not: ++$i
echo$b==9; // output if it has 10 prime factors
오래된 아이디어 : 111 90
for($i=1;++$i<1e3;)for($j=1;++$j<1e3;)${$i*$j}=($$i?:1)+($$j?:1);echo${date('Y')+543}==10;
이것은 기본 인수 분해 기본 제공을 사용하지 않고 기본적으로 10000보다 작은 소수의 소수를 얻기 위해 계수 기본 체 를 사용합니다 date('Y')
. 이는 PHP가 다음을 사용하여 제공하는 4 자리 연도에 매핑됩니다 .
for($i=1;++$i<1e3;) // for each number smaller sqrt(1e4)
for($j=1;++$j<1e3;) // do sqrt(1e4) times
${$i*$j}=($$i?:1)+($$j?:1); // n_factors[i*j] = n_factors[i] + n_factors[j]
echo${date('Y')+543}==10; // output 1 if the current year has 10 prime factors or nothing if it doesn't