Pagini recente » Cod sursa (job #538590) | Cod sursa (job #1423511) | Cod sursa (job #235081) | Cod sursa (job #2069511) | Cod sursa (job #450065)
Cod sursa(job #450065)
#include <cstdio>
#include <bitset>
using namespace std;
bitset <130000000000> c;
long long n,p;
long long euclid (long long a, long long b) {
long long c;
while(b) {
c=a%b;
a=b;
b=c;
}
return a;
}
long long ciur() {
p--;//prima fractie e 1
long long i=2,j;
while (p) {
if(!c[i])
if(euclid(n,i)==1) {
--p;
if(!p) return i;
++i;
}
else
for(j=i; j<1<<n; j+=i)
c[j]=1;
++i;
}
return i;
}
int main()
{
freopen("frac.in","r",stdin);
freopen("frac.out","w",stdout);
scanf("%lld %lld", &n,&p);
if(p==1) printf("1");
else printf("%lld",ciur());
return 0;
}