Edited at

合成数列の和アドベントカレンダー PHP 編

合成数列の和アドベントカレンダー Advent Calendar 2018 の 3 日目です。


ルール


  • 入力として正の整数 N を与えたら 4 から始まる 合成数 の数列の 1 番目から N 番目からの合計を出力してください

  • N は最大で 100 とします


プログラム(PHP)


composite.php

<?php

// Extension load check
if (!extension_loaded('gmp'))
{
die('PHP extension gmp is not loaded.');
}

$in = (int)$_SERVER['argv'][1];
$num = 4;
$composites = $sum = 0;
while ($composites < $in)
{
if (!gmp_prob_prime($num))
{
$composites++;
$sum += $num;
}
$num++;
}
print $sum;


※素数判定に GMPモジュール を使用しています。


出力例

$ php composite.php 2

10
$ php composite.php 4
27
$ php composite.php 10
112
$ php composite.php 100
7059


メモ

この問題は ずんだ問題 の番外編です