给定你五个正整数,它们最小众倍数是指能够被其中至少三个数整除的最小正整数。
给定你各不相同的整型a, b, c, d以及e。请返回它们的最小众倍数。
输入:
输入五个正整数a,b,c,d,e。a, b, c, d以及e中每个的取值范围都在1和100之间(其中包括1和100)。a, b, c, d以及e各不相同
输出:
返回它们的最小众倍数
举例:
a = 1 b = 2 c = 3 d = 4 e = 5, 返回4。4能够被1,2以及4整除,满足五个数中至少能被其中三个整除的定义
这个有简单的方法,也有复杂的方法,关键是看你对效率是否有要求。
简单的方法是:遍历,依次累加的笨方法,伪代码如下:
#include <iostream>
using namespace std;
int main(void)
{
unsigned int a,b,c,d,e;
unsigned int i = 1;
unsigned int count = 0;
cin >> a;
cin >> b;
cin >> c;
cin >> d;
cin >> e;
while (i)
{
if(i%a == 0) count++;
if(i%b == 0) count++;
if(i%c == 0) count++;
if(i%d == 0) count++;
if(i%e == 0) count++;
if (count >= 3)
{
cout << i << " is zhongbeishu!" << endl;
break;
}
count = 0;
i++;
}
return 0;
}
复杂的方法可以两两求公倍数,得到5个公倍数,然后再递归一次即可。
int nArr[5] = {1,2,3,4,5};
if (nArr[0] % nArr[1] == 0) //整除判断,即可判断公倍数问题。。
{
//
}