找出500-600之间的质数,输出时显示“质数是501.502……”(数字是我乱写的)
这是利用筛法求质数的代码:
#include <stdio.h>
#include <stdbool.h>
const int N = 650;
bool flag[650]; // 埃氏筛法
int main(void)
{
for (int i = 0; i < N; i++)
flag[i] = true;
flag[0] = flag[1] = false;
for (int i = 2; i < N; i++)
for (int j = i + i; j < N; j += i)
flag[j] = false;
printf("Prime:");
for (int i = 500; i < 600; i++)
if (flag[i])
printf("%d.", i);
puts("");
return 0;
}
这是一个判断一个数是不是质数的函数,也可以利用循环来分别判断一个数是不是质数
bool isPrime(int n)
{
if (n < 2)
return false;
if (n == 2)
return true;
for (int i = 2; i <= n / i; i++)
if (n % i == 0)
return false;
return true;
}
找出的质数如下:
503.509.521.523.541.547.557.563.569.571.577.587.593.599.
望采纳,谢谢!