Pagini recente » Cod sursa (job #2899333) | Cod sursa (job #2138302) | Cod sursa (job #3255223) | Cod sursa (job #2580964) | Cod sursa (job #66948)
Cod sursa(job #66948)
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[100];
data d[100];
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);
descompune();
cautafact();
fclose(fin); fclose(fout);
return 0;
}