我正在尝试打印小于某个限制的两个整数的所有常见倍数(在我的情况下为100)。但是,当我调用我的函数时,它什么也没做。这是我的代码:
void com_mul(int a, int b)
{
int original = b;
for(int i = 1; a <= 100; i++)
{
a *= i;
b = original;
for(int j = 1; b <= a; j++)
{
b *= j;
if(a == b)
cout << b << ", ";
}
}
}
答案 0 :(得分:1)
使用单个循环可以更简单地解决这个问题。
在for
循环中,从1到100迭代可能的除数d
。如果d
除以a
和b
,请打印{{1} }。
您可以通过应用d
运算符并将结果检查为零来判断数字是否除以另一个数字:
%
答案 1 :(得分:0)
在我的计算机上使用a = 4, b = 2, max = 100
进行了测试。它输出4。
这是因为行for (int j = 1; b <= a; j++)
。 j
只能进入&#39;
我认为这样做。
#include <iostream>
#include <string>
int main()
{
int a, b, max;
std::cin >> a >> b >> max;
for (int i = a; i <= max; i++)
{
if (i%a == 0 && i%b == 0)
std::cout << i << std::endl;
}
return 0;
}