| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [Delphi] Вывести все делители числа q |
| Автор: nitrak 25.12.2006, 20:37 |
| даны целые числа p и q. Вывести все делители числа q взаимно простые с числом p. Взаимно простые числа не имеют общих делителе кроме 1 |
| Автор: achepkunov 25.12.2006, 22:55 |
| Найди сначала все делители q |
| Автор: nitrak 7.1.2007, 19:07 | ||||
а дальше неполучается.... Добавлено @ 19:10 Фигню напиал.. ща исправлю..
|
| Автор: Akina 7.1.2007, 23:24 |
| Раскладываешь на делители P Раскладываешь на делители Q Из делителей P выкидываешь все, что имеются у Q Из того что осталось собираешь все что можно собрать. Пример P = 180 Q = 14 Делители P: 2 2 3 3 5 Делители Q: 2 7 Делители в P, отсутствующие в Q: 3 3 5 Составляем всевозможные числа их перемножением: 3 5 9 15 45 |
| Автор: achepkunov 8.1.2007, 02:40 | ||
| Akina, Ловко, только можно даже делители q не искать - если раскладывать p на простые делители, то достаточно того, чтобы на них не делился сам q. Но лучше разложить q, поделить на все что можно p, и потом уже искать все делители уменьшенного p. В том же примере (180 и 14) - раскладываем 14, находим 2, делим 180 на 2 до упора (2 раза получится), далее находим 7, делим получившееся 45 до упора на 7 (0 раз), получившееся 45 и раскладываем. Добавлено @ 02:44 nitrak, Молодец! т.е. надо в том же цикле в районе 19 строчки вставить цикл по уменьшению p. Справишься? Чтобы программа работала быстрее, можно еще потом внешний цикл сделать не с уменьшением d а с увеличением, и при нахождении делителя уменьшать q так же как и p. Но сначала, из любви к красоте, взгляни на такую запись твоего цикла:
Обрати внимание на d:=d-1;. |