7-4 判断一个整数是否为素数 (15分)
本题要求编写程序,判断一个给定的整数是否为素数。素数就是只能被1和自身整除的正整数,1不是素数,2是素数。
输入格式:
输入在一行中给出一个需要判断的整数 M(−2^31≤ M ≤2^31−1)
输出格式:
如果M是素数,则在一行中输出Yes,否则输出No。如果输入了非正整数,也要输出No。
输入样例1:
11
输出样例1:
Yes
输入样例2:
9
输出样例2:
No
输入样例3:
-2
输出样例3:
No
#include<stdio.h>
#include<math.h>
int main(void)
{
int i;
double n;
scanf("%lf",&n);
if(n <= 1) // 0 1和负数都不是素数
printf("No");
else
{
for(i = 2;i <= sqrt(n);i++) //调用sqrt()函数降低数值最大范围,解决最大M
if((int)n%i==0) //强制类型转换将double转换为int型
{
break; //若某个n能够让某个i整除,则n不是素数,循环提前结束
}
if(i > sqrt(n)) //若遍历所有i,n都不能被整除,则n是素数
printf("Yes\n");
else
printf("No\n");
}
return 0;
}
//坚持不易,花个几秒钟点个赞,这就是对七七最大的肯定与支持动力