素数:一个数,如果只有1和它本身两个因数,这样的数叫做质数,又称素数
原理:如果对任意输入的一个数n,利用枚举只要能找出任意一个 2~n-1 之间的数i,并满足 n 能被 i 整除,那么就可以说明n不是素数;否则,n 为素数
代码如下
# include<stdio.h>
int prime(int n)
{
int i, j;
for(i=2; i<=j; i++)
{
if(n%i==0)
return 0; // 判断是不是素数,是返回1, 不是返回0
}
return 1;
}
int main()
{
int m;
printf("Please input an integer data:\n");
scanf("%d", &m);
if(prime(m))
printf("%d is a prime data\n", m);
else
printf("%d is not a prime data\n", m);
}
改进:利用数学上的方法,可以提高函数的运行效率:只需要 2~根号n之间的所有整数去除n就可以判断
需要 <math.h>中的sqrt()
int prime(int n)
{
int i, j;
j=sqrt(n);
for(i=2; i<=j; i++)
{
if(n%i==0)
return 0;
}
return 1;
}
运行结果