设为首页 加入收藏

TOP

计算质数
2014-11-23 23:30:09 来源: 作者: 【 】 浏览:1
Tags:计算

今天需要找一个合适的质数,心算、笔算、上网找工具?也许自己写一个更方便,算是紧张工作中休闲娱乐一下,代码比较简陋,性能也差,不建议计算100,000以上的质数

view plain

#include

#include

void Prime(int max)

{

std::vector isNotPrimes(max + 1);

isNotPrimes[0] = true;

isNotPrimes[1] = true;

isNotPrimes[2] = false;

for (int i = 2; i * 2 <= max; i++)

{

for (int j = 2; ; j++)

{

int product = i * j;

if (product > max)

{

break;

}

else

{

isNotPrimes[product] = true;

}

}

}

for (int i = 0, j = 0, count = isNotPrimes.size(); i < count; i++)

{

if (!isNotPrimes[i])

{

printf("%4d ", i);

j++;

if (j % 10 == 0)

{

printf("\n");

}

}

}

}

int main(int argc, char* argv[])

{

if (argc != 2)

{

printf("%s 计算0 ~ max之间的质数\n", argv[0]);

_getch();

return 0;

}

int max = atoi(argv[1]);

if (max < 2)

{

printf("没有任何结果\n");

_getch();

return 0;

}

Prime(max);

_getch();

return 0;

}

摘自:郭月丰的专栏

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇算法的艺术--最大子序列和问题 下一篇命令行参数解析的一些心得

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: