Pagini recente » Cod sursa (job #600524) | Cod sursa (job #517991) | Cod sursa (job #2252088) | Cod sursa (job #537165) | Cod sursa (job #450067)
Cod sursa(job #450067)
#include <cstdio>
#include <bitset>
using namespace std;
bitset <130000000000LL> 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<2*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;
}