测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A33829. 提示信息倍数与约数:如果a能被b整除,a就叫做b的倍数,b就叫做a的约数。约数和倍数都表示一个整数与另一个整数的关系,不能单独存在。最大公约数:几个整数中公有的约数,叫做这几个数的公约数;其中最大的一个,叫做这几个数的最大公约数。举例:12、16的公约数有1、2、4,其中最大的一个是4,所以4是12与16的最大公约数。最小公倍数:几个自然数公有的倍数,叫做这几个数的公倍数,其中最小的一个,叫做这…

填空题 困难

题目描述

提示信息

倍数与约数:如果a能被b整除,a就叫做b的倍数,b就叫做a的约数。约数和倍数都表示一个整数与另一个整数的关系,不能单独存在。

最大公约数:几个整数中公有的约数,叫做这几个数的公约数;其中最大的一个,叫做这几个数的最大公约数。

举例:12、16的公约数有1、2、4,其中最大的一个是4,所以4是12与16的最大公约数。

最小公倍数:几个自然数公有的倍数,叫做这几个数的公倍数,其中最小的一个,叫做这几个数的最小公倍数。

举例:4的倍数有4、8、12、16,……,6的倍数有6、12、18、24,……,4和6的公倍数有12、24,……,其中最小的是12,所以4和6最小公倍数为12。

题目描述

分别输入两个正整数(1<正整数<201),输出这两个正整数的最大公约数M及最小公倍数N(注:M和N输出到一行,之间以一个英文逗号隔开)。

输入

第1行输入第一个正整数

第2行输入第二个正整数

输出

输出这两个正整数的最大公约数M及最小公倍数N(M和N输出到一行,之间以一个英文逗号隔开)      

样例输入

4

6

样例输出

2,12

参考答案

// 参考代码1 #include <algorithm> #include <cmath> #include <cstdio> #include <cstring> #include <iostream> #include <queue> #include <string.h> #include <vector> using namespace std; #define INF 0x7f int main() { int n, m, b, s, a; cin >> n >> m; if (n > m) a = m; else a = n; for (int i = 1; i <= a; i++) { if (n % i == 0 && m % i == 0) { b = i; } } for (int i = n * m; i > 0; i--) { if (i % n == 0 && i % m == 0) { s = i; } } cout << b << "," << s; }

答案解析

// 参考代码2

#include <bits/stdc++.h>

using namespace std;

int main() {

  int a, b, max = 0, min = 100000;

  cin >> a >> b;

  if (a < b) {

    swap(a, b);

  }

  for (int i = 1; i <= a; i++) {

if (a % i == 0 && b % i == 0) {

      max = i;

    }

  }

  for (int j = 1; j <= a; j++) {

    for (int k = 1; k <= a; k++) {

if (a * j == b * k && min > a * j) {

        min = a * j;

      }

    }

  }

  cout << max << "," << min << endl;

  return 0;

}

上一题 下一题