Задача
Задача взята из задачника А.Юркина
Кратные пары
Среди заданных целых чисел [latex]k, l, m[/latex] найти пары кратных.
Входные данные
Целые числа [latex]k, l, m[/latex].
[latex] \left | k,l,m \right |< 2\cdot 10^{9} [/latex]
Выходные данные
Пары чисел, одно из которых является кратным другого.
Тесты
Входные данные | Выходные данные | |
1. | 1 2 3 | 1 2
1 3 |
2. | 0 2 4 |
2 4 |
3. | 1 2 6 | 1 2
1 6 2 6 |
4. | 5 5 2 | 5 5 |
5. | 0 0 3 | |
6. | 2 5 3 | |
7. | -10 5 2 |
Код программы
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
#include <iostream> using namespace std; int main() { int k,l,m; cin >> k >> l >> m; if (k>0){ if (l>0){ if (m>0){ if ((k%m==0)||(m%k==0)) cout << k << " " << m << endl; if ((k%l==0)||(l%k==0)) cout << k << " " << l << endl; if ((l%m==0)||(m%l==0)) cout << l << " " << m << endl; } else if ((k%l==0)||(l%k==0)) cout << k << " " << l << endl; } else if ((m>0) && ((m%k==0)||(k%m==0))) cout << m << " " << k << endl; } else if ((l>0) && (m>0) && ((l%m==0)||(m%l==0))) cout << l << " " << m << endl; return 0; } |
Решение
Хотя свойство делимости определено на всём множестве целых чисел, обычно рассматривается лишь делимость натуральных чисел.
Кратное натурального числа [latex]b[/latex] — это натуральное число [latex]a[/latex], которое делится на [latex]b[/latex] нацело. Наименьшим кратным данного числа является само это число.
— Обычно «кратные» определяют для натуральных чисел. У Вас в тестах есть 0 и отрицательные. Вы определяете число как кратное если оно целое и остаток от деления на данное равен нулю? Например, 0 кратно любому натуральному числу? Можете дать ссылку?
— Зачем Вы так сильно ограничили диапазон входных значений- не превышает 1000? Вскоре после 1000 могут возникнуть проблемы?
Спасибо, исправила. Думаю, что теперь определение корректно. Диапазон входных значений увеличила.
Вы считаете, что 1010 помещается в int? Для 32-битных целых это не так. Нужно использовать более широкий тип данных.
Я зачёл работу, но исправьте пожалуйста либо программу, либо условие задачи.