【发布时间】:2013-03-17 18:41:05
【问题描述】:
我尝试打印素数; 2到100万。但是控制台上没有打印任何内容。你能检查我的代码吗?我怎样才能使这段代码更加优化?
这是我的代码:
#include <stdio.h>
#include <math.h>
main()
{
int num, sr, num2;
for (num = 2; num <= 1000000; num++) {
sr = (int) sqrt(num);
for (num2 = 2; sr % num2 != 0; num2++) {
if (sr == num2) {
printf("%d\n", sr);
}
}
}
}
【问题讨论】:
-
在你的调试器中单步调试代码,错误应该立即显而易见。
-
提示:如果
sr == 1和num2 >= 2,sr%num2会是什么? -
您可以通过注意所有超过 3 的素数都是 6k+1 或 6k-1 的形式来优化它。