Cod sursa(job #368243)

Utilizator Cristi09Cristi Cristi09 Data 24 noiembrie 2009 11:46:23
Problema Frac Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include<stdio.h>
long long n,p,a[100],ind=0,per,lo=0;
void getdiv();
void detper();
int verif(long long x);
long long cautbin();
int main()
{
   FILE*f=fopen("frac.in","r");
   fscanf(f,"%d%d",&n,&p);
   fclose(f);

   getdiv();
   detper();
   lo+=n*(p/per);
   p-=per*(p/per);

   FILE*g=fopen("frac.out","w");
   fprintf(g,"%d",cautbin());
   fclose(g);
   return 0;
}
void getdiv()
{
   long long x=n,i=2;

   for(i;x>1;++i)
	  if(x%i==0)
	  {
		a[ind]=i;
		++ind;
		while(x%i==0)x/=i;
	  }
}
void detper()
{
   per=1;
   long long i=2;
   for(i;i<n;++i)
	 if(verif(i))++per;
}
int verif(long long x)
{
   long long i;
   int ok=1;
   for(i=0;i<ind&&ok;++i)
   if(x%a[i]==0)ok=0;

   return ok;
}
long long cautbin()
{  ++lo;
   long long cont=0;
   for(lo;cont<p;++lo)
   if(verif(lo))++cont;

   return lo-1;
}