给定一个闭区间 [n,m],输出其中质数个数
请输出闭区间 [n,m] 中质数个数
#include <iostream>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
using namespace std;
const int xx = 1e8;
#define PrimeMax xx
bool Prime[PrimeMax+1];
void IsPrime()//Prime[i]存储i是否是素数
{
memset(Prime,true,sizeof(Prime));
Prime[1]=Prime[0]=false;
int n=PrimeMax,m=sqrt(PrimeMax);
for(int i=2; i<=m; i++)
if(Prime[i])
for(int j=i*i; j<=n; j+=i)
Prime[j]=false;
}
int main()
{
IsPrime();
int n,m;
while(cin>>n>>m)
{
int ans=0;
for(int i=n; i<=m; i++)
if(Prime[i])
ans++;
cout<<ans<<endl;
}
return 0;
}
#include<stdio.h>
#include<string.h>
#include<math.h>
int main()
{
int n,m,i,j,ans=0;
scanf("%d%d",&n,&m);
for(i=n; i<=m; i++)
{
for(j=2; j<=sqrt(i); j++)
{
if(i%j==0)
break;
}
if(j>sqrt(i))
ans++;
}
printf("%d\n",ans);
return 0;
}