Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.10.22;
Скачать: [xml.tar.bz2];

Вниз

Задачка   Найти похожие ветки 

 
Зацени   (2006-10-02 17:08) [0]

Числа, равные сумме своих делителей (кроме себя самого), называются совершенными. Например, число 28 является совершенным: 28 = 1 + 2 + 4 + 7 + 14. Найти все совершенные числа от 1 до 10000
Вот подкинули мне такую задачу и я не знаю как её решать, помогите пожалуйста.Полного кода мне не нужно, а вот примерный алгоритм не помешает.


 
Ketmar ©   (2006-10-02 17:13) [1]

в школу. быстро. и попросить математичку, чтобы поставила побольше двоек. потому что алгоритм ты сам только что описал.


 
Слил   (2006-10-02 17:46) [2]

Я имею в виду алгоритм программы.Я знаю как найти делители:
Write;
Readln(a);
nd:=0;
for i:=2 to a div 2 do
if a mod i=0 then
begin
writeln;
Write(i:4);
nd:=nd+1;
end;
но что делать далбше не знаю вот и прошу помощи.


 
Ketmar ©   (2006-10-02 17:52) [3]

ну и? посчитать сумму делителей и проверить, равна ли она исследуюмому числу. ы?


 
Слил   (2006-10-02 17:54) [4]

Видишь в чем проблема у меня все делители выраженны одной переменной, и как посчитать их сумму я не знаю.


 
Ketmar ©   (2006-10-02 17:57) [5]

думай. в начале сумма, натурально, равна нулю. нашёл очередной делитель -- сразу прибавил его к искомой сумме. и так для всех. на выходе получаешь именно то, что хотел. больше разжёвывать не буду -- и так нарушил традицию "отсылки за метлой". %-)


 
MBo ©   (2006-10-02 17:58) [6]

sum:=1;
for i:=2 to a div 2 do
if (a mod i) = 0 then
 sum := sum + i;


 
Ketmar ©   (2006-10-02 17:59) [7]

>[6] MBo(c) 2-Oct-2006, 17:58
зачем воспитательный процесс нарушаешь? %-)


 
Слил   (2006-10-02 18:10) [8]

В данный момент нет паскаля под рукой но мне кажется что прога будет выглядить примерно так

nd:=0;
sum:=0;
for j:=1 to 1000 do begin
for i:=2 to a div 2 do
if a mod i=0 then
begin
sum:=sum+i
writeln;
if sum:=j then
Write(j:4);
end;
если что не так то обьясните почему, а то я только в 9 классе и мне надо ущнавать по больше


 
Ketmar ©   (2006-10-02 18:15) [9]

см. [6]


 
Слил   (2006-10-02 18:19) [10]

а что там?
я вроде сумму проверяю


 
Ketmar ©   (2006-10-02 18:24) [11]

а там -- нормальный код. в девятом классе уже можно язык знать. у тебя -- явное непонимание именно языка. советую просто от хорошего настроения: дальше ничего не спрашивай. подумай сам. один раз разбершься -- на всю жизнь будешь рад. в крайнем случае -- пиши. пробуй.

хинт: алгоритм неверен.


 
Слил   (2006-10-02 18:51) [12]

Не знаю так или не так
sum:=0;
for a:=1 to 1000 do begin
for i:=2 to a div 2 do
if (a mod i)=0 then begin
sum:=sum+i;
if sum=a then
Write(sum:4);
end;
end;
но по другому не могу придумать.Плиз, если не правильно то подскажите где именно, и что я делаю не так.


 
Германн ©   (2006-10-02 18:57) [13]

1. sum нужно присваивать не 0, а 1 как в [6]
2. это нужно делать внутри цикла по а
3. проверку sum=a вынести за границу цикла по i



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.10.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.037 c
8-1143041903
Pavia
2006-03-22 18:38
2006.10.22
TV tuner


15-1159352528
Delphi basic
2006-09-27 14:22
2006.10.22
Переименование системной папки Windows


15-1159361351
Проггер
2006-09-27 16:49
2006.10.22
Не посильная задачка :(


15-1159444290
Проггер
2006-09-28 15:51
2006.10.22
Завораживающая картинка.


15-1159036932
AnCo
2006-09-23 22:42
2006.10.22
TMS AdvStringGrid





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский