回复 9楼 pcbaichi
只要加上一句Sleep(10);就可以了
以下是引用观弈寒儒在2011-2-27 13:21:24的发言:
很大程度上是相同的,少了一个for,应该比较优越,你这个程序最大的不足是运行时CPU的占有率是100%。
很大程度上是相同的,少了一个for,应该比较优越,你这个程序最大的不足是运行时CPU的占有率是100%。
一个程序的运行时 CPU 占用率是 100% 不是好事吗~ 说明资源利用充分。
#include <stdio.h> #include <memory.h> #define M 10000 char isprime[M]; int main(int argc, const char *argv[]) { memset(isprime, 1, sizeof(isprime)); isprime[0] = isprime[1] = 0; int i, j; for (i = 2; i < M; i++) // set isprime. { if (isprime[i]) { for (j = i+i; j < M; j += i) isprime[j] = 0; } } /* for (i = 0; i < M; i++) if(isprime[i]) printf("%d", i); */ // test Goldbach int flag = 0; for (i = 6; i < M; i += 2) { for (j = 3; j < i; j++) if (isprime[j] && isprime[i-j]) { // printf("%d = %d + %d\n", i, j, i-j); break; } if (j == i) { flag = 1; printf("failed number: %d\n", i); } } if (!flag) printf("all test passed.\n"); return 0; }