素数的判断并不能通过简单的限制条件进行判断, 只能自己根据素数的数学定义,自行书写素数判断函数并调用。
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;
scanf("%d",&n);//输入n值。
if(isPrime(n)) //判断是素数
printf("%d 是素数\n", n);//输出结果。
return 0;
}
注意,用到了平方根函数sqrt,所以需要包含头文件math.h。
本回答被网友采纳