如何求C语言素数?

Python014

如何求C语言素数?,第1张

如果一个数是素数,只要判断他是否能被2到这个数的开方之间的数整除就行了。

int flag=0

if(m==2){ //先判断是不是2

flag=1

}

else{

for(int i=2i<=sqrt(m)i++){

flag=1

if(m%i==0){ //不是素数

flag=0

break

}

}

}

return  (flag==1)?m:-1//判断是否为1,为1输出m,否则输出-1 ,-1表示不是素数

如果是求某个范围的素数,可以连续调用这个方法,上面是常规的方法,还有更好的方法自己去查一下。

#include <stdio.h>

#include <math.h>

int isprime(int n) {//n为素数时,返回1,否则返回0

int i,flag = 1

if(n < 2) return 0

for(i = 2 i <= sqrt(n) && flag ++i) flag = (n%i)

return flag

}

int main() {

int n,cnt = 0

printf("100 ~ 1000之间的素数有:\n")

for(n = 100 n < 1000 ++n) {

if(isprime(n)) {

++cnt

printf("%d\t",n)

if(cnt && (cnt%10 == 0)) printf("\n")

}

}

if(cnt%10) printf("\n")

return 0

}