Cod sursa(job #342621)
| Utilizator | Data | 22 august 2009 15:48:27 | |
|---|---|---|---|
| Problema | GFact | Scor | 20 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.54 kb |
#include <stdio.h>
long p,q,a[100002],b[100002],i,k;
int main(){
FILE *f,*g;
f=fopen("gfact.in","r");
g=fopen("gfact.out","w");
fscanf(f,"%ld%ld",&p,&q);
// for(i=1;i<=100000;i++){
// a[i]=0;
// b[i]=0;
// }
k=0;
if(p%2==0){
a[++k]=2;
while(p%2==0){
b[k]++;
p/=2;
}
}
i=3;
do{
if(p%i==0){
a[++k]=i;
while(p%i==0){
b[k]++;
p/=i;
}
}
i+=2;
}while(p!=1);
long long nr=1;
for(i=1;i<=b[k];i++)
nr*=a[k];
fprintf(g,"%lld\n",nr);
fclose(f);
fclose(g);
return 0;
}
