Cod sursa(job #3187230)
| Utilizator | Data | 28 decembrie 2023 11:10:18 | |
|---|---|---|---|
| Problema | GFact | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.56 kb |
#include<fstream>
using namespace std;
ifstream F("gfact.in");
ofstream G("gfact.out");
int p,q,a[10],b[10],j,k,i;
long long c,s,t,r,l;
bool o;
int main()
{
for(F>>p>>q,c=1LL*p*q,s=1;s<=c;s<<=1);
for(;!(p&1);p>>=1,++l);
for(l?a[j]=2,b[j++]=l*q:0,i=3;i*i<=p;i+=2)
if(p%i==0) {
for(a[j]=i,b[j]=0;p%i==0;p/=i,++b[j]);
b[j++]*=q;
}
for(p>1?a[j]=p,b[j++]=q:0,t=s;t;!o&&c>=t?c-=t:0,t>>=1)
for(o=0,k=0;k<j&&!o;l<b[k]?o=1:0,++k)
for(l=0,r=c-t;r&&l<b[k];r/=a[k],l+=r);
return G<<c,0;
}
