IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Дружественные числа, Помогите разобраться.
Аня
сообщение 20.12.2005 18:40
Сообщение #1


Гость






Здравствуйте, уважаемые.
Я была бы очень признательна, если б вы мне помогли разобраться в задаче, и если можно то, решить.
Найти все дружественные числа, лежащие в диапазоне от 200 до 300.
Я посмотрела на вашем форуме, что такое дружественные числа, но так ничего и не поняла. Всех делителей, значит и само число? Т.е. у числа двести, например делители 200, 100, 50, 25, 10, 5, 2, 1, и эта сумма, точнее 393, должна точно так же разложиться на делители, чтобы ее сумма получилась равной 200? Но тогда ведь заведомо известно, что сумма будет больше 200, т. к. первый делитель это как минимум 393. Я ничего не пониманию, помогите, если сможете, люди добрые.
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
klem4
сообщение 20.12.2005 19:00
Сообщение #2


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Числа называются дружественными, если каждое из них равно сумме делителей другого, не считая самого себя, но считая единицу, вот программа , которая выводит числа от 1 до С, которые равны сумме своих делителей, тебе надо перебрать просто все числа по парам используя этот алгоритм :

uses crt;
var
C,count,i,j,s : word;
begin

write('C = '); readln(C );

count := 0;

for i := 1 to C do begin
s := 0;
for j := 1 to i div 2 do begin
if i mod j = 0 then begin
writeln(j,' - delitel ',i);
s := s + j;
end;
if s = i then begin
writeln('Chislo ',i,' ravno summe svoih delitelei');
readln;
inc(count);
end;
end;
end;
readln
end.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 21.06.2025 8:14
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"