题目内容
写一个代码:打印100~200之间的素数
在编程之前,首先我们要了解素数的定义:在大于1的自然数中,除了1和它本身以外不再有其他因数。
方法一(暴力法):
#include <stdio.h> int main() { int a = 0; int count = 0; for (a = 101; a <= 200; a++) { int j = 0; for (j = 2; j < a; j++) { if (a % j == 0) { break; } } if (j == a) { count++; printf("%d ", a); } } printf("\ncount = %d\n", count); return 0; } 在这里插入代码片
运用这种方法进行编程,进行了许多没有意义的运算,会使代码过于繁琐,系统执行速度较慢,所以我们继续探究是否能将该代码进行优化。
方法二:
#include <stdio.h> int main() { int a = 0; int count = 0; for (a = 101;a <= 200; a++) { int j = 0; for (j = 2; j <= a / 2; j++) { if (a % j == 0) { break; } } if (j > a / 2) { count++; printf("%d ", a); } } printf("count = %d\n", count); return 0; }
这样的效率就提升了许多。
结果:
本题的结题方法还有很多,不止上述两种!