Pagini recente » Cod sursa (job #2060689) | Cod sursa (job #2893216) | Cod sursa (job #1065553) | Cod sursa (job #2787692) | Cod sursa (job #133888)
Cod sursa(job #133888)
#include <fstream>
//#include <iostream>
using namespace std;
int main()
{
unsigned long aux_n,n,v[10000],indice,fact,i,p,numarator,fractii;
ifstream f("frac.in");
f>>n>>p;
aux_n=n;
f.close();
fact=2;indice=0;
while(n>1)
{ if (n%fact==0)
{v[++indice]=fact;
while(n%fact==0)
n=n/fact;}
fact++;
}
int ok;
numarator=1;fractii=1;
// cout<<"n="<<n;
n=aux_n;
//cout<<endl;
//for(i=1;i<=indice;i++)
// cout<<v[i]<<" ";
//cout<<endl<<"numaratori...";
while (numarator<n)
{
numarator++;
ok=1;
for(i=1;i<=indice;i++)
if (numarator%v[i]==0){ok=0; break;}
if (ok) fractii++;
}
//cout<<endl<<"nr fractiilor= "<<fractii<<endl;
unsigned long cat=p/fractii,rest=p%fractii;
numarator=1;fractii=1;
while (fractii<rest)
{
numarator++;
ok=1;
for(i=1;i<=indice;i++)
if (numarator%v[i]==0){ok=0; break;}
if (ok) fractii++;
}
// cout<<"numarator="<<numarator<<" cat="<<cat<<" rest= "<<rest;
ofstream g("frac.out");
g<<cat*n+numarator;
g.close();
//system("pause");
return 0;
}