Cod sursa(job #1077068)
| Utilizator | Data | 10 ianuarie 2014 20:56:48 | |
|---|---|---|---|
| Problema | Frac | Scor | 30 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.73 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream fi("frac.in");
ofstream fo("frac.out");
long long v[100000000],w[100000000],n,p;
int main()
{
fi>>n>>p;
int nr=0;
if (n%2==0) {
nr++;
w[nr]=2;
while (n%2==0)
n=n/2;
}
int d=1;
while (n>1) {
d=d+2;
if (n%d==0) {
nr++;
w[nr]=d;
while (n%d==0)
n=n/d;
}
}
for (int i=1;i<=nr;i++)
for (int j=w[i];j<=1000000;j=j+w[i])
v[j]=1;
nr=0;
for (int i=1;nr<p;i++)
if (v[i]==0) {
nr++;
if (nr==p)
fo<<i;
}
return 0;
}
