//实现一个函数,判断一个数是不是素数
#include<stdio.h>
#include<math.h>
int sushu(int i)//是素数返回1,不是素数返回0
{
int j=2;
if(i==1)
return 0;
if(i==2)
return 1;
for(j=3;j<sqrt(i);j+=2)//试除法改进*2
{
if(i%j==0)
return 0;
}
return 1;
}
int main()
{
int in,out;
printf("判断一个数是不是素数,请输入一个数:>");
scanf("%d",&in);
out=sushu(in);
if(out)
printf("%d是素数",in);
else
printf("%d不是素数",in);
return 0;
}
//错误案例:判断素数的定义错误
// //实现一个函数,判断一个数是不是素数
// #include<stdio.h>
// int sushu(int i)
// {
// if(i>7)
// {
// if (i%2!=0 && i%3!=0 && i%5!=0 && i%7!=0)
// //一个数同时对2 3 5 7取余不为0则这个数为素数
// return 1;
// else
// return 0;
// }
// else if(i==2||i==5||i==7)
// return 1;
// else
// return 0;
// }
// int main()
// {
// int in,out;
// printf("判断一个数是不是素数,请输入一个数:>");
// scanf("%d",&in);
// out=sushu(in);
// if(out)
// printf("%d是素数",in);
// else
// printf("%d不是素数",in);
// return 0;
// }