作为c语言的初学者,给大家分享一下我所了解的两种判断素数的方法。
方法一:
根据素数的定义,判断一个数n是否为素数需要将这个数除2到n-1中的所有数。如都不能被整除则这个数为素数,反之不为素数。例如:判断100到200之间的素数。
#include<stdio.h>
int main()
{
int m,n;
for(m=100;m<=200;m++)
{
for(n=2;n<m-1;n++)
if(m%j==0)
{
break;
}
if(n>=m)
{
printf("%d",m);
}
}
}
方法二:
运用math.sqrt()函数,将n除2到sqrt(n)。如都不能被整除则这个数为素数,反之不为素数。例如:
#include<stdio.h>
#include<math.h>
int main()
{
int m,n,k;
for(m=100;m<=200;m++)
{
k=sqrt(m);
for(n=2;n<=k;n++)
{
if(m%n==0)break;
}
if(n>=k+1)
{
printf("%d",m);
}
}
相比于第一种方法,第二种方法的运算次数少了很多,减少了程序所占的内存,算法的效率也更高。学习编程就必须要学好算法,算法的学习又离不开灵敏的数学思维。初学者会感觉很难,但没有什么事是简单的。学习编程切勿眼高手低,一定要脚踏实地,有困难也要迎难而上,攻克困难。时不时的给自己定下小目标。希望这能给各位带来一点帮助。