您的位置:首页 > 其它

uva11889 Benefit

2013-08-04 22:46 281 查看
思路与uva10892类似

#include <iostream>
#include <cstdio>
#include <vector>
using namespace std;
long long gcd(long long a,long long b){
return b == 0 ?a : gcd(b,a%b);
}
int main(){
int ncase;
vector<long long> num;
cin >> ncase;
while(ncase--){
long long  a,c;
long long ans = 100000000;
num.clear();
scanf("%lld%lld",&a,&c);
if(c%a){
cout<<"NO SOLUTION"<<endl;
continue;
}
for(long long i = 1; i*i <= c; i++){
if(c % i == 0){
if(i*i == c){
num.push_back(i);
}else{
num.push_back(i);
num.push_back(c/i);
}
}
}
for(long long i = 0; i < num.size(); i++){
if(a*num[i] == c*gcd(a,num[i])){
if(ans > num[i]){
ans = num[i];
}
}
}
if(ans == 100000000){
cout<<"NO SOLUTION"<<endl;
}else{
cout<<ans<<endl;
}

}

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: