要求:给出一个大于或等于3的正整数,判断它是不是一个素数。
分析:
- 素数是指除了1和该数本身之外,不能被其他任何整数整除的数。
- 判断一个数n(n>=3)是否为素数的方法:将n作为被除数,将2~(n-1)的各个整数先后作为除数,如果都不能被整除,则n为素数。
- 实际上,n不必被2~ (n-1)的整数除,只需被2~ n/2的整数除即可,甚至只需被2~√n的整数除即可。
#include <stdio.h>
#include <math.h>
int main()
{
int n,t,i;
printf("请输入一个大于等于3的数:");
scanf("%d",&n);
if(n>=3)
{
for(i=2;i<=sqrt(n);i++) //sqrt()求平方根
{
if(n%i==0)
t=1;
}
if(t==1)
printf("%d不是素数\n",n);
else
printf("%d是素数\n",n);
}
else
printf("输入的数太小啦,请重新输入\n");
return 0;
}
运行结果: