Cod sursa(job #450067)

Utilizator S7012MYPetru Trimbitas S7012MY Data 7 mai 2010 17:48:36
Problema Frac Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#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;
}