Pagini recente » Cod sursa (job #2105521) | Cod sursa (job #125265) | Cod sursa (job #2030717) | Cod sursa (job #2963468) | Cod sursa (job #3259482)
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("frac.in");
ofstream fout("frac.out");
long long n,p,sol,ok,k,dv[1000005];
bool prim[1000005];
void eratostene()
{
for(int i=2; i<=1000000; i++)
{
prim[i]=1;
}
for(int i=2; i<=1000; i++)
{
if(prim[i]==1)
{
for(int d=2; d<=1000000/i; d++)
{
prim[i*d]=0;
}
}
}
}
int main()
{
fin>>n>>p;
eratostene();
for(int d=2; d<=sqrt(n); d++)
{
if(n%d==0)
{
if(prim[d]==1)
dv[++k]=d;
if(prim[n/d]==1)
{
dv[++k]=n/d;
}
}
}
if(prim[n]==1)
{
dv[++k]=n;
}
/**
for(int i=1;i<=k;i++)
{
fout<<dv[i]<<" ";
}
**/
long long st=1;
long long dr=pow(2,61);
long long mij;
while(st<=dr)
{
mij=(st+dr)/2;
for(int i=1;i<=k;i++)
{
dv[i]=mij/dv[i];
//fout<<dv[i]<<" ";
}
}
return 0;
}