Користувач вводить два цілих числа. Необ'хідно вивести всі цілі числа, на які обидва введені числа
діляться без залишку.
С++
Ответы на вопрос
Обычный вариант:
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "RUS");
int x,y;
cout<<"Введите 2 целых положительных числа"<<endl;
cin >> x;
cin >> y;
cout << "Числа " << x << " и " << y << " делятся без остатка на числа: " << endl;
for (int i = 1;i <= x;i++){
if ((x%i == 0)&&(y%i == 0)){
cout << i << " ";
}
}
}
Оптимизированный вариант:
#include <iostream>
using namespace std;
void vivod(int a, int b){
for (int i = 1;i <= a;i++){
if ((a%i == 0)&&(b%i == 0)){
cout << i << " ";
}
}
}
int main()
{
setlocale(LC_ALL, "RUS");
int x,y;
cout<<"Введите 2 целых положительных числа"<<endl;
cin >> x;
cin >> y;
cout << "Числа " << x << " и " << y << " делятся без остатка на числа: " << endl;
if (x>=y){
vivod(y,x);
}
else {
vivod(x,y);
}
}