2024-11-07 01:52:15
遍历2到100之间所有整数,然后逐一判断是否为素数,如果是则存入数组。
最终遍历数组输出每个值即可。 具体如下:
1、素数的判断。
根据素数定义,除了1和本身不存在其它约数的正整数为素数。
所以在C语言中判断n是否为素数可以从2开始到到n-1逐一尝试,如果可以整除说明不是素数。
更进一步,可以从2判断到n/2或者n的算术平方根,如果不存在约数,那么即为素数。
除此以外,判断素数的算法还有素数筛等。
2、判断素数的函数:
以遍历判断约数的方法为例,函数可以编写如下:
int isPrime(int n)//判断n是否为素数,如果是则返回1,否则返回0.
{
int i;
for(i = 2; i <= (int)sqrt(n); i ++)//从2到算术平方根遍历。
if(n%i == 0) return 0;//存在约数,不是素数,返回0.
return 1;//不存在约数,返回1,表示为素数。
}
3、整体代码示例:
#include <stdio.h>
#include <math.h>
int isPrime(int n)//之前的函数。
{
int i;
for(i = 2; i <= (int)sqrt(n); i ++)
if(n%i == 0) return 0;
return 1;
}
int main()
{
int n;
int a[100];
int cnt=0;
for(n = 2;n<=100; n ++)//遍历2到100所有整数。
if(isPrime(n)) //判断是素数
a[cnt++] = n;//存入数组。
for(n = 0; n < cnt; n ++)//遍历存放素数的数组。
printf("%d ", a[n]);//输出。
printf("\n");
return 0;
}
运行结果如下: