UVA 11889 Benefit——gcd
2017-11-19 11:27
190 查看
步骤:
1若c % a != 0 , 输出no, 否则令b = c / a
2另g=gcd(a, b);
3如果g不为1,则a = a / g, b = b * g, 然后重复2直到g为1
4输出b
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
int gcd(int x, int y) { return (y == 0) ? x : gcd(y, x % y); }
int main() {
int T; scanf("%d", &T);
for (int kase = 1; kase <= T; kase++) {
int a, c;
scanf("%d %d", &a, &c);
if (c % a) {
printf("NO SOLUTION\n"); continue;
}
int b = c / a;
int g = gcd(a, b);
while (g != 1) {
a /= g;
b *= g;
g = gcd(a, b);
}
printf("%d\n", b);
}
return 0;
}
1若c % a != 0 , 输出no, 否则令b = c / a
2另g=gcd(a, b);
3如果g不为1,则a = a / g, b = b * g, 然后重复2直到g为1
4输出b
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
int gcd(int x, int y) { return (y == 0) ? x : gcd(y, x % y); }
int main() {
int T; scanf("%d", &T);
for (int kase = 1; kase <= T; kase++) {
int a, c;
scanf("%d %d", &a, &c);
if (c % a) {
printf("NO SOLUTION\n"); continue;
}
int b = c / a;
int g = gcd(a, b);
while (g != 1) {
a /= g;
b *= g;
g = gcd(a, b);
}
printf("%d\n", b);
}
return 0;
}
相关文章推荐
- Uva 11889 Benefit (lcm与gcd)
- [UVa 11889] Benefit (基础数论+GCD+LCM)
- UVa 11889 (GCD) Benefit
- uva11889 Benefit(gcd)
- UVA11889 Benefit
- uva 11889 Benefit
- UVA 11889-Benefit(数学_快速枚举因子)
- UVa 11889 - Benefit (数论)
- UVa 11889 Benefit
- UVa11889 Benefit
- uva11889 Benefit
- uva 11889 Benefit(数学)
- UVa 11889 Benefit (数学)
- UVa11889 - Benefit
- UVa 11889 - Benefit
- UVa 11889 Benefit (数论)
- UVA - 11889 Benefit【LCM】
- UVA 11889 Benefit
- uva 11889 Benefit
- UVA 11889 - Benefit(数论)