C语言素数的判断
对于素数的判断,本文共总结了两种算法供大家参考,希望能给大家带来一些帮助。
1、利用标志位进行判断
具体的程序如下:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
void main()
{
int i,j,k=0;
int flag=1;
for(i=101;i<201;i++)
{
for(j=2;j<i;j++)
{
if(i%j==0)
{
flag=0;
}
}
if(flag==1)
{
printf("%d\n",i);
k=k+1;
}
flag=1;
}
printf("一共有%d素数\n",k);
}
2、利用break循环退出
利用break跳出循环进行判断,具体程序如下:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
int isPrimeNumber(int m)
{
int i;
int k=(int)sqrt((double)m);
for(i=2;i<k+1;i++)
{
if(m%i==0)
{
break;
}
}
if(i>k)
{
return 1;
}
else
{
return 0;
}
}
void main()
{
int isPrimeNumber(int m);
int j;
int d=0;
for(j=101;j<201;j++)
{
if(isPrimeNumber(j))
{
printf("%d\n",j);
d=d+1;
}
}
printf("%d\n",d);
}
3、总结
上述两种方法都能实现对素数的判断,思路有些不同,但都是一些常用的方法。其中,在第二种方法种实现了对m的开方运算,这在工程中是很有必要的,可以节省大量的运算时间;同时可以将本文第一种中的i进行开方,这里为了给大家做个比较,我就不再进行更改了。如果还有其它的方法可以进行素数的判断,希望大家给予留言。