C语⾔判断素数(两种⽅法)
素数⼜称质数,是指除了1和它本⾝外,不能被其他任何整数整除的数,例如17就是素数,因为它不能被2~16任意整数整除。
思路1:判断⼀个数是否为素数,只需把m被2~m-1之间的每⼀个整数去除,如果都不能被整除,那么m就是⼀个素数。
思路2:另外判断⽅法可以简化,m只需被2~√m之间的每⼀个整数去除就可以了,如果m不能被2-√m之间的每个整数去除,m必定是素数。例如判断17是否是素数,只需使17被2-4之间的每个整数去除,由于都不能整除,故17是素数。
两种思路的代码如下
思路1的代码:
#include<stdio.h>
int main()
{
int a=0;//判断p的因⼦个数
int p;
int i;
scanf("%d",&p);
for(i=2;i<p;i++)c++判断素数
{
if(p%i==0)
a++;
}
if(a==0)
printf("%d is a prime\n",p);
else
printf("%d is not a prime\n",p);
return0;
}
思路2的代码:
#include<stdio.h>
#include<math.h>
int main()
{
int p,i;//p是输⼊的整数,i是循环次数
int a=0;//因⼦个数
int m;
scanf("%d",&p);
m=(int)sqrt(p);
for(i=2;i<=m;i++)
{
if(p%m==0)
a++;
}
if(a==0)
printf("%d is a prime\n",p);
else
printf("%d is not a prime\n",p);
return0;
}
思路2也可写成:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论