Mai intai trebuie sa te autentifici.
Cod sursa(job #210064)
Utilizator | Data | 26 septembrie 2008 12:22:08 | |
---|---|---|---|
Problema | Frac | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.6 kb |
#include<stdio.h>
int k=0;
long long v[120000000]={0};
void phi(int n){
int i, j;
for(i=2; i<=n;++i)
if(v[i]==0)
if(n%i==0)
for(j=i; j<=n;j=j+i)
if(v[j]==0)
{
k++;
v[j]=1;
}
}
int caut(int n, int p){
phi(n);
int nr=0, i, j;
v[1]=0;
for(i=1; nr<p;++i)
if(v[i]==0){
nr++;
j=i;
}
return j;
}
int main(){
freopen("frac.in", "r", stdin);
freopen("frac.out", "w", stdout);
int n, p;
scanf("%d", &n);
scanf("%d", &p);
phi(n);
int x=n-k;
printf("%d", (p/x)*n+caut(n, p%x));
return 0;}