2011年1月29日土曜日

ProjectEulerを斬る!問10

Problem 10
08 February 2002

The sum of the primes below 10 is 2 + 3 + 5 + 7 = 17.

Find the sum of all the primes below two million.

10までの素数の総和は2+3+5+7=17です。
2000000までの素数の総和を求めなさい。(日本語訳PNN)




using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
double sum = 2;
int req = 2000000;

for (double prime = 3; prime <= req; prime += 2)
{
bool b_prime = true;
if ((int)(prime / 2) * 2 == prime)
{
b_prime = false;
}
else
{
for (double i = 3; i <= Math.Sqrt(prime); i += 2)
{
if ((int)(prime / i) * i == prime)
{
b_prime = false;
break;
}
}
}
if (b_prime == true)
{
sum += prime;
}
}
Console.WriteLine(sum);
Console.ReadLine();
}
}
}

出力結果:142913828922

0 件のコメント:

コメントを投稿