Pagini recente » Cod sursa (job #2359794) | Cod sursa (job #706888) | Cod sursa (job #1944677) | Cod sursa (job #1132819) | Cod sursa (job #2456615)
#include <fstream>
using namespace std;
ifstream cin("an.in");
ofstream cout("an.out");
int baz[101];
short int exp[101];
int main()
{
int n,cop,stop=1,f,nr=0,nrr,rez=1,i,maxi=0,inm=1,rip;
cin>>n;
cop=n;
for(f=2;f*f<=cop;f++)
{
if(cop%f==0)
{
nr++;
baz[nr]=f;
while(cop%f==0){
exp[nr]++;
cop/=f;
}
maxi=max(maxi,(int)exp[nr]);
rez*=f;
}
}
if(cop>1){
rez*=cop;
nr++;
baz[nr]=cop;
exp[nr]=1;
}
if(rez>=maxi)
cout<<rez;
else{
while(stop)
{
inm++;
if(inm*rez>=maxi)
{
stop=0;
cout<<inm*rez;
}
else
{
rip=1;
for(i=1;i<=nr && rip;i++)
{
if(exp[i]>inm*rez){
if(inm%baz[i]==0)
{
cop=inm;
nrr=0;
while(cop%baz[i]==0)
{
cop/=baz[i];
nrr++;
}
if(exp[i]>inm*rez*(nrr+1))
rip=0;
}
else
rip=0;
}
}
}
}
}
return 0;
}