➤ Problem Link : PRIME1
👉 Hint : edit please
✅ C++ Solution :
#include <bits/stdc++.h>
using namespace std;
#define MAX 100001
#define ll long long int
void prime(ll m,ll n,vector<int>& v)
{
int arr[n-m+1];
ll i,j;
for(i=0;i<n-m+1;i++)
arr[i]=0;
for(i=0;v[i]*(double)v[i]<=n;i++)
{
int curr=v[i];
ll base=(m/curr)*curr;
if(base<m)
base+=curr;
for(j=base;j<=n;j+=curr)
arr[j-m]=1;
if(base==curr)
arr[base-m]=0;
}
if(m==1)
arr[0]=1;
for(i=m;i<=n;i++)
{
if(arr[i-m]==0)
cout<<i<<endl;
}
}
int main()
{
int i,j;
int a[MAX];
for(i=0;i<MAX;i++)
a[i]=0;
for(i=2;i*i<MAX;i++)
{
if(a[i]==0)
{
for(j=i*i;j<MAX;j+=i)
a[j]=1;
}
}
vector<int>v;
v.push_back(2);
for(i=3;i<MAX;i+=2)
{
if(a[i]==0)
v.push_back(i);
}
int t;
cin>>t;
while(t--)
{
ll m,n;
cin>>m>>n;
prime(m,n,v);
cout<<endl;
}
return 0;
}
Thank you for your patience reading. If you enjoyed this post, I’d be very grateful if you’d help it spread by emailing it to a friend, or sharing it on Whatsapp or Facebook.
😇Happy Learning!!
