比如,输入
起始数值:1
终止数值:20
选择两个整数整除
输入两个除数整数:2,3
选择两个整数整除输出:6 12
#include <iostream>
using namespace std;
int main() {
int a,b,c,d;
cin >> a;
cin >> b;
cin >> c;
cin >> d;
//a = 1, b = 20, c = 2, d = 3;
for (int i = a; i <= b; i++)
if (i % c == 0 && i % d == 0)
cout << i << " ";
return 0;
}
运行结果 6 12 18
先算出最小公倍数,再输出区间中所有最小公倍数的整倍数的数就行
int main(){
int l, r, a, b, lcm;
cin >> l >> r >> a >> b;
lcm = a * b;
if( a < b ){
int t = a; a = b; b = t;
}
while( b ){
int t = a % b;
a = b; b = t;
}
lcm /= a; //最小公倍数
for( int i = l / lcm; i <= r/lcm; i++ )
if( l <= lcm*i && lcm*i <= r )
cout << lcm*i << " ";
return 0;
}