Pagini recente » Cod sursa (job #448182) | Cod sursa (job #2343115) | Cod sursa (job #1238512) | Cod sursa (job #196236) | Cod sursa (job #70599)
Cod sursa(job #70599)
#include<fstream.h>
long a[1000000],P,Q;
long factor(long N){
long t=0,t1=0;
for (long i=2;i<=P;i++)
if (a[i]>0){
long u=1,nr=0;
t1++;
while (u*i<=N){
nr+=N/(u*i);
u*=i;}
if (nr>=a[i])
t++;}
if (t1==t)
return 1;
return 0;}
void comparare(long P){
while (P%2==0){
a[2]++;
P/=2;}
for (long d=3;d<=P/d;d+=2)
while (P%d==0){
a[d]++;
P/=d;}
if (P!=1)
a[P]++;
}
void imn(long P){
for (long i=0;i<=P;i++)
a[i]*=Q;
}
int main(){
ifstream fin("gfact.in");
fin>>P>>Q;
fin.close();
comparare(P);
imn(P);
ofstream fout("gfact.out");
for (long long i=2;;i++){
if (factor(i)==1) {
fout<<i;
break; } }
fout<<"\n";
fout.close();
return 0;
}