求100~200之间的素数程序及优化
作为初学C语言的人,每个人都一定会遇到求100~200之间的素数的问题,然而作为初学者来说,知道怎样实现,却不知道用C语言怎样书写出这个程序,怎样优化这个程序,今天就为初学者提供一些建议。
首先,我们可以写出这样的代码解决这个问题:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int i = 0;
int j = 0;
for (i = 101; i <= 200; i++)
{
for (j = 2; j < i; j++)
{
if (i%j == 0)
break;
}
if (j >= i)
printf("%d ", i);
}
}
这个代码,是我们最常规的想法。
下面的代码,是可简化计算的,我们知道偶数一定不是素数,所以我们可以将偶数跳过这样实现,只需要修改for循环的表达式,做出以下修改:
for (i = 101; i <= 200; i+=2)
还有其他的优化方法:(可以利用sqrt,不要忘了引用头文件)
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
int main()
{
int i = 0;
int j = 0;
for (i = 101; i <= 200; i += 2)
{
for (j = 2; j <= sqrt(i); j++)
{
if (i%j == 0)
break;
}
if (j > sqrt(i))
{
printf("%d ", i);
}
}
}
输出的结果是:
这是2种优化计算的方法。
除了在主函数中写程序,我们也可以利用函数,来完成。