Я работаю над кодом для печати всех чисел, чей LCM равен 240. Теперь это довольно просто, напишите 2 для циклов, и все готово. Я предоставил код ниже. Теперь я хочу удалить дублирующиеся пары. Например, если я уже напечатал (16,30), я не хочу печатать (30,16).
Так что я решил решить эту проблему, изменив 2-й индекс, чтобы верхний предел был равен1-й индекс.
using namespace std;
int findLCM(int a, int b)
{
int lar = max(a, b);
int small = min(a, b);
for (int i = lar; ; i += lar) {
if (i % small == 0)
return i;
}
}
int main()
{
int a = 5, b = 7,s=0;
for(int i=1;i<=360;i++){
for(int j=1;j<=i;j++){
if(findLCM(i,j)==360){
cout<<"("<<i<<","<<j<<")"<<endl;
s++;
}
}
}
cout<<s;
return 0;
}
\\modified code
using namespace std;
{
int lar = max(a, b);
int small = min(a, b);
for (int i = lar; ; i += lar) {
if (i % small == 0)
return i;
}
}
int main()
{
int a = 5, b = 7,s=0;
for(int i=1;i<=240;i++){
for(int j=1;j<=i;j++){
if(findLCM(i,j)==240){
cout<<"("<<i<<","<<j<<")"<<endl;
s++;
}
}
}
cout<<s;
return 0;
}
Итак, я обнаружил, что это похоже на работу. Достаточно ли этой модификации в цикле, чтобы гарантировать, что дублирующиеся пары не будут напечатаны?