p2118 RE
查看原帖
p2118 RE
1427312
chenaex楼主2024/10/5 16:59
#include<bits/stdc++.h>
using namespace std;
int main()
{
    int a,b,c;
    cin>>a>>b>>c;
    int n[int(sqrt(a)+1)]={0},m[int(sqrt(b)+1)]={0},a2=a,b2=b;
    for(int i=2;i<=int(sqrt(max(a,b)));i++)
    {
        while(a%i!=0)
        {
            a/=i;
            n[i]++;
        }
        while(b%i!=0)
        {
            b/=i;
            m[i]++;
        }
    }
    int x=1;
    for(int i=2;i<=int(sqrt(max(a2,b2)));i++)
    {
        x*=min(n[i],m[i])*i;
    }
    int bg=b2/x,ag=a2/x;
    while(max(ag,bg)>c)
    {
        if(bg>c)
        {
            bg/=c;
        }
        if(ag>c)
        {
            ag/=c;
        }
    }
    cout<<ag<<" "<<bg;
    return 0;
}
2024/10/5 16:59
加载中...