素数即不能被1或自身之外的数整除。把其中的数每个除一边这个素数即可判断出来。
如素数13。只要将2到12每个除一边,就可判断。
之后将其简化,除法之所以可以整除是因为存在约数,根据贝叶斯公式可推出,最大公约数即该数的开方。
若除数大于被除数的开方,肯定不能整除。从而将除数范围缩小。
#include<cstdio>
bool isPrime(int a)
{
for(int i=2; i*i<=a; i++)
if(a%i==0)
return 0;
return 1;
}
int main()
{
int a=0;
bool b=0;
scanf("%d",&a);
b=isPrime(a);
b?printf("是"):printf("不是");
return 0;
}