Pagini recente » Cod sursa (job #1651047) | Cod sursa (job #2446397) | Cod sursa (job #708703) | Cod sursa (job #1311614) | Cod sursa (job #66972)
Cod sursa(job #66972)
using namespace std;
#define ll long long
#include <stdio.h>
#include <fstream>
FILE *fin=fopen("gfact.in","r"),
*fout=fopen("gfact.out","w");
typedef struct
{
int n,p;
} data;
ll p;
int q,m,x[200];
data d[200];
void descompune()
{
int ind=0,i=2,ct;
while (p>1)
{
if (p%i==0) {
ct=0;
ind++;
while (p%i==0) { p/=i; ct++; }
d[ind].n=i; d[ind].p=ct;
}
i++;
}
m=ind;
}
int ok()
{
int i;
for (i=1; i<=m; i++)
if (x[i]<d[i].p) return 0;
return 1;
}
void cautafact(void)
{
int i,aux,p=1;
memset(x,0,sizeof(x));
while (1>0)
{
aux=p;
for (i=1; i<=m; i++)
while (aux%d[i].n==0)
{
aux/=d[i].n;
x[i]++;
}
if (ok()) break;
p++;
}
fprintf(fout,"%d",p);
}
int main()
{
fscanf(fin,"%lld %d",&p,&q);
int i,v=p;
for (i=2; i<=q; i++)
p*=v;
descompune();
cautafact();
fclose(fin); fclose(fout);
return 0;
}