c语言求素数个数

Python08

c语言求素数个数,第1张

#include<stdio.h>

#include<math.h>

int a[1000001]

int isprime(int i)

{

int a

for(a=2a<=sqrt(i+1)a++)

if(i%a==0)return 0

return 1

}

main()

{

int i,j,k

a[2]=1

for(i=3i<=1000000i++)

a[i]=a[i-1]+(i%2!=0&&isprime(i)==1)

int min,max,K,l

for(l=0l<Kl++)

{

scanf("%d %d",&min,&max)

printf("%d\n",a[max]-a[min])

}

}

先编写一个判断素数函数,类型为bool型

bool Isprime(int number)

{

for (int i = 2i <numberi++)

if (number mod i != 0)

return false

return true

}

上面的代码还可以继续优化,只是给你提供个思路

然后在主函数里面循环调用这个函数 比如数组num[N] 循环N次,将num[i] 作为参数调用上面的函数,然后看返回值,如果未true 素数的个数+1,就可以了