|
|
zadach276.PAS |
|
{* Задача 276 *}Unit ZADACH276;Interface Implementation Begin writeln('ДРУЖЕСТВЕННЫЕ числа - два натуральных числа, каждое из которых равно сумме правильных делителей другого (т. е. делителей, меньших этого числа). Напр., 284 и 220. Составить программу, которая находит все дружественные числа в интервале [1; 10000]. '); End. Program zadach276; Uses zadach276.pas; {* Эту строку можно удалить *} Uses crt; {* Вызов внешних функций *} Var {* В работе нам потребуются переменные: *} a : longint; {первое число} b : integer; {делители числа s} i : integer; {делители числа a} s : integer; {сумма делителей первого числа} s1 : integer; {сумма делителей s} Begin clrscr; {* Очистка экрана *} writeln ('Программа, находящая все дружественные'); writeln ('числа в интервале от 1 до 10000'); readln; {* Ждем подтверждения пользователя *} For a := 2 To 10000 Do {цикл для проверки первых чисел} Begin s := 0; For i := 1 To a - 1 Do {находим все делители числа а, исключая само число} Begin If a Mod i = 0 Then {находится сумма делителей числа а} Begin s := s + i; End; End; s1 := 0; For b := 1 To s - 1 Do {цикл для проверки вторых чисел, которые являются суммой делителей первого числа} Begin If s Mod b = 0 Then {находим все делители чила s (сумма делителей числа а)} Begin s1 := s1 + b; End; End; If (s1 = a) And (sa) Then {сумма делителей суммы делителей числа а должна быть равна числу а, а сумма делителей числа а не должна быть равна этому числу} Begin writeln ('Числа ', a, ' и ', s, ' - дружественные'); End; End; readln; {* Приостановка программы. Ожидание Enter *} End. 07.08.2014 - Breakpoint - точка остановки 07.08.2014 - Топ-10 самых популярных приложений в Facebook 18.11.2013 - Панель управления и персонализация системы. Windows Vista 18.11.2013 - Логические и физические диски. Windows Vista 18.11.2013 - Удаление файлов и папок 01.11.2013 - Программирование дисковых подсистем: возможности 31.10.2013 - Windows8 или Windows7? 31.10.2013 - Windows8, игры |
|
Non-commercial fansite
|