链接:
https://www.nowcoder.com/acm/contest/115/I
来源:牛客网
来源:牛客网
题目描述
小P和小Q是好朋友,今天他们一起玩一个有趣的游戏。
他们的初始积分都为1,赢的人可以将自己的分数乘以 (K的平方),而输的人也能乘以K。
他们玩的太开心了,以至于忘了自己玩了多久,甚至 K 是多少和游戏进行的回合数 N 都忘了。
现在给出他们俩最终的积分a,b,请问是否存在正整数K、N满足这样的积分,判断他们的游戏结果是否可信。
输入描述:
第一行输入一个整数T(表示样例个数) 接下来T组样例 每组样例一行,输入两个正整数a,b(0<a,b<=1e9)
输出描述:
输出T行 一行输出一个样例对应的结果 若结果可信,输出 Yes 否则,输出 No
示例1
输入
6 2 4 75 45 8 8 16 16 247 994 1000000000 1000000
输出
Yes Yes Yes No No Yes
备注:
每回合的K可能不同
每一回合游戏都会乘以k^3
#include<iostream>
#include<cmath>
using namespace std;
int main(){
int n;
long long a,b;
cin>>n;
while(n--){
cin>>a>>b;
long long t=cbrt(a*b);
long long x=a/t;
long long y=b/t;
if((x*x*y==a)&&(x*y*y==b))//需要好好意会
cout<<"Yes"<<endl;
else
cout<<"No"<<endl;
}
return 0;
}