Pagini recente » Cod sursa (job #307833) | Cod sursa (job #1595041) | Cod sursa (job #1249541) | Cod sursa (job #3165956) | Cod sursa (job #881498)
Cod sursa(job #881498)
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
using namespace std;
int main()
{
FILE* f=fopen("gfact.in","r");
FILE* g=fopen("gfact.out","w");
int p,q;
fscanf(f,"%d%d",&p,&q);
int puteri[20];
int val[20];
int n=0;
int cp = p;
for(int i=2;i<=p;i++)
{
if (p%i==0)
{
puteri[n]=0;
val[n]=i;
while(p%i==0)
{
puteri[n]++;
p/=i;
}
n++;
}
}
for(int i=0;i<n;i++)
{
puteri[i]*=q;
}
p = cp;
for(unsigned long long nr=2;nr<=p*q;nr++)
{
bool gasit=false;
for(int i=0;i<n;i++)
{
int k=0;
int v = val[i];
for(int j=1;j<=puteri[i];j++)
{
k+=nr/v;
v *= val[i];
if(k>=puteri[i])
{
break;
}
}
if(k<puteri[i])
{
gasit=true;
}
}
if(!gasit)
{
fprintf(g,"%llu",nr);
break;
}
}
return 0;
}