题目内容
写一个代码:打印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;
}
这样的效率就提升了许多。
结果:
本题的结题方法还有很多,不止上述两种!