Pagini recente » Cod sursa (job #777397) | Cod sursa (job #2789425) | Cod sursa (job #251359) | Cod sursa (job #1955470) | Cod sursa (job #117437)
Cod sursa(job #117437)
#include<fstream>
using namespace std;
ifstream fin("frac.in");
ofstream fout("frac.out");
short b[10000000];
void citire(long long &n,long long &p)
{
fin>>n;
fin>>p;
fin.close();
}
void umple(int q,short b[1000000],long long n,long long p)
{
int j;
for(j = q; j <= 100000;j+=2)
if(j%q == 0)
b[j] = 1;
}
void era(short b[1000000],long long n,long long p)
{
int i;
long long z;
z = n;
for(i =2; i <= z; i++)
if(n%i == 0)
{
umple(i,b,n,p);
while(n%i == 0)
n/=i;
}
}
void gasire(long long p,short b[1000000],long long n)
{
long long q=0,i;
for(i = 1 ; i <= 1000000;i++)
if(b[i] == 0)
{
q++;
if(q == p)
break;
}
fout<<i-1;
}
int main()
{
long long n,p;
citire(n,p);
era(b,n,p);
gasire(p,b,n);
fout.close();
return 0;
}