2009年8月11日 星期二

枚举质数 Enum prime numbers in C++

http://projecteuler.net/index.php?section=problems&id=7
以下代码将枚举10001个质数,耗时16ms
Example for enum 10001 prime numbers in 16ms.

int res[10001],Pos1=2;
res[0]=2;
res[1]=3;
res[2]=5;
for (int Enum=5;Pos1<10001;Enum++)
{
        BOOL wanted=1;
        for (int Pos2=0;res[Pos2]<=sqrt(Enum);Pos2++)
       {
                 if (!(Enum%res[Pos2]))
                {
                          wanted=0;
                          break;
                 }
        }
        if (wanted)
        {
                 res[Pos1]=Enum;
                 Pos1++;
        }
}
printf("%i",res[10000]);

沒有留言:

張貼留言