|
|
发表于 2013-6-18 21:14:00
|
显示全部楼层
- #include <stdio.h>
-
- // 辗转相除法求最大公约数
- int gcd(int a, int b)
- {
- int t;
-
- while (b)
- {
- t = a % b;
- a = b;
- b = t;
- }
-
- return a;
- }
-
- int main()
- {
- int m, n;
-
- scanf("%d %d", &m, &n);
-
- // 参数检查
- if (0 >= m || 0 >= n)
- {
- return -1;
- }
-
- // 有1颗一包时可以组合出任意数
- if (1 == m || 1 == n)
- {
- printf("%d\n", -1);
- return 0;
- }
-
- // 两数不互质,不能组合出的数为正无穷
- if (1 != gcd(m, n))
- {
- printf("+oo\n");
- return 0;
- }
-
- printf("%d\n", m * n - m - n);
- return 0;
- }
-
复制代码 |
|