Cod sursa(job #15891)
| Utilizator | Data | 11 februarie 2007 20:37:06 | |
|---|---|---|---|
| Problema | Frac | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.53 kb |
#include<stdio.h>
#include<math.h>
int main()
{long int n,p,k,j,i,r,a,b,nr;
FILE *f,*g;
f=fopen("frac.in","r");
g=fopen("frac.out","w");
fscanf(f,"%ld %ld",&n,&p);
j=1;
for(i=2; i<=sqrt(n);i++)
if (n%i==0) {j=0; break;}
if (j==1) if (n>=p){nr=p+1; }
else nr=p;
else{k=0;
if(n%2==0) {j=2;i=1;}
else {j=1;i=1;}
while (k<p)
{a=i;
b=n;
r=a%b;
while (r!=0) {a=b; b=r; r=a%b;}
if (b==1){nr=i;k++; }
i=i+j;} }
fprintf(g,"%ld",nr);
fclose(f);
fclose(g);
return 0;}
