用c语言输出100以内全部素数,并对其进行优化
时间: 2023-05-22 15:05:50 浏览: 73
当输出100以内所有素数的时候,可以使用一般的质数判断方式,其中用到了for循环和if判断,具体代码如下:
```
#include<stdio.h>
#include<stdlib.h>
bool JudgePrime(int number)
{
int i;
for (i = 2; i < number; i++) {
if (number % i == 0)
break;
}
if (i >= number)
return true;
else
return false;
}
int main()
{
int i;
for (i = 2; i < 100; i++)
{
if (JudgePrime(i))
printf("%d\n", i);
}
return 0;
}
```
上述代码中,先定义了一个判断素数的函数JudgePrime,用于判断某一数是不是素数。
随后在主函数中,使用for循环从2开始到100结束,调用该函数进行判断,若为素数则输出。
对于优化,可以在判断素数的时候让i只遍历到number的平方根,这样可以加快判断速度。具体代码如下:
```
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
bool JudgePrime(int number)
{
int i;
for (i = 2; i <= sqrt(number); i++) {
if (number % i == 0)
break;
}
if (i > sqrt(number))
return true;
else
return false;
}
int main()
{
int i;
for (i = 2; i < 100; i++)
{
if (JudgePrime(i))
printf("%d\n", i);
}
return 0;
}
```
使用新加的math.h库中的sqrt函数,可以让i循环到number的平方根即可,这样减少了循环次数,使得判断速度更快。