Eratosthenes Algorithm - Prime Numbers

Find the prime numbers from 0 to n, i from 2 to sqrt(n), take the unmarked number j in turn, mark the multiples of j (the current prime number) from j*j to n each time, and finally the rest are all prime number

#include<iostream>

#include<math.h>
using namespace std;
int isprime(int m,int n)
{
int *prime=new int[n+1];
for(int i=2;i<=n;i++)
{
prime[i]=1;
}
for(int i=2;i<=sqrt(n);i++)
{
if(prime[i]==0)continue;
for(int j=i*i;j<=n;j+=i)
{
prime[j]=0;
}
}
int num=0;
for(int i=m;i<=n;i++)
{
num+=prime[i];
}
delete []prime;
return num;
}
int main()
{
long long int n,m;
while(cin>>m>>n)
{
cout<<isprime(m,n)<<endl;
}
return 0;
 } 

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324689149&siteId=291194637