Совершенные числа, и что-то еще про цикл. |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Совершенные числа, и что-то еще про цикл. |
Ромка |
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 17 Пол: Мужской Репутация: 0 |
Составить программу для графического изображения делимости чисел от 1 до n (n - исходное данное). В каждой строке надо печатать число и сколько плюсов, сколько делителей у этого числа. Например, если исходное данное - число 4, то на экране должно быть напечатано:
1+ 2++ 3++ 4+++ Составить программу получения всех совершенных чисел, меньших заданного числа n. Число называется совершенным, если равно сумме всех своих положительных делителей, кроме самого этого числа. Например, 28 - совершенно, так как 28=1+2+4+7+14. Даны натуральные числа n, m. Получить все меньшие n натуральные числа, квадрат суммы цифр которых равен m. Даны натуральные числа n и m. Найти все пары дружественных чисел, лежащих в диапазоне от n до m. Два числа называются дружественными, если каждое из них равно сумме всех делителей другого (само число в качестве делителя не рассматривается). |
volvo |
Сообщение
#2
|
Гость |
Правила читать будем? FAQ и поиск зачем?
Совершенные числа |
Ромка |
Сообщение
#3
|
Новичок Группа: Пользователи Сообщений: 17 Пол: Мужской Репутация: 0 |
ne nashol !!!
|
Altair |
Сообщение
#4
|
Ищущий истину Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
плохо искал.
-------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Ромка |
Сообщение
#5
|
Новичок Группа: Пользователи Сообщений: 17 Пол: Мужской Репутация: 0 |
Rebjat, mozhet prosto pomozhete... Esli vam vsjo jasno i do boli ponjatno...
|
Altair |
Сообщение
#6
|
Ищущий истину Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Поиск совершенных чисел.
Цитата Определенный интерес для любителей представляет программа поиска совершенных чисел. Ее схема проста: в цикле для каждого числа проверять сумму его делителей и сравнивать ее с самим числом, - если они равны, то это число совершенное. Код VAR I,N,Summa: LONGINT; Delitel: INTEGER; begin FOR I:=3 TO 34000000 DO BEGIN Summa:=1; FOR Delitel:=2 TO SQRT(I) DO BEGIN N:=(I DIV Delitel); IF N*Delitel=I THEN Summa:=Summa + Delitel + (I DIV Delitel); END; IF INT(SQRT(I))=SQRT(I) THEN Summa:=Summa-INT(SQRT(I)); IF I=Summa THEN WRITELN(I,’ - ‘,Summa); END; END. Проверка: простое-ли число. (вполне подходит для не самых больших чисел) Код function isPrime(X: word): boolean; var i: integer; Begin isPrime:=false; for i:=2 to trunc(sqrt(x)) do if x mod i = 0 then Exit; isPrime:=true End; это з фака.... пожалуй этого должно хватить -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Ромка |
Сообщение
#7
|
Новичок Группа: Пользователи Сообщений: 17 Пол: Мужской Репутация: 0 |
pishel ordinal expression expected na etoj stroke DO BEGIN N:=(I DIV Delitel);
|
Altair |
Сообщение
#8
|
Ищущий истину Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
так:
-------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Altair |
Сообщение
#9
|
Ищущий истину Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
еще один пост на транслите и тема будет закрыта!
-------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Ромка |
Сообщение
#10
|
Новичок Группа: Пользователи Сообщений: 17 Пол: Мужской Репутация: 0 |
ссори, не заметил твоё мсг. всё транслиту - нет !!
давно пора, в XXI веке живем, есть поддержка всех языков... Сообщение отредактировано: Oleg_Z - |
Ромка |
Сообщение
#11
|
Новичок Группа: Пользователи Сообщений: 17 Пол: Мужской Репутация: 0 |
Даны натуральные числа n и m. Найти все пары дружественных чисел, лежащих в диапазоне от n до m. Два числа называются дружественными, если каждое из них равно сумме всех делителей другого (само число в качестве делителя не рассматривается).
Что-то никак не получается... |
Altair |
Сообщение
#12
|
Ищущий истину Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
а ты покажи что получается...
Код в студию, что уже написанно. -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Ромка |
Сообщение
#13
|
Новичок Группа: Пользователи Сообщений: 17 Пол: Мужской Репутация: 0 |
Код uses crt; var n,m,del1,del2,per,vtor,summ1,summ2:integer; begin readln (n,m); summ1:=0; summ2:=0; for per:=n to m do for vtor:=n to m do begin for del1:= n to m do for del2:= n to m do if (per mod del1=0) then inc (summ1); if (vtor mod del2=0) then inc (summ2); end; if (summ1-per)=(summ2-vtor) then writeln (per,' ', vtor); readkey; end. виснет... хэлп !!!! |
volvo |
Сообщение
#14
|
Гость |
Нет, она не виснет, она просто очень долго считает... Ты же пользуешься полным перебором - нерационально. Можно попробовать воспользоваться известной формулой для нахождения пар дружественных чисел (см. аттач)
Эскизы прикрепленных изображений |
Ромка |
Сообщение
#15
|
Новичок Группа: Пользователи Сообщений: 17 Пол: Мужской Репутация: 0 |
Спасибо. Ну может кто-то знает полегче вариант, а то этот я не осилю. я нуб...
|
volvo |
Сообщение
#16
|
Гость |
Цитата(Ромка @ 21.02.05 20:06) может кто-то знает полегче вариант, а то этот я не осилю. Чем легче вариант - тем дольше он будет работать... А тут главное - скорость... А сложного в этом абсолютно ничего нет... Код Function PowerTwo(n: Byte): LongInt; Begin PowerTwo := LongInt(2) shl Pred(n) End; Function IsPrime(X: LongInt): Boolean; Var i: integer; Begin isPrime := False; For i := 2 To Trunc(Sqrt(x)) Do If x mod i = 0 Then Exit; isPrime := True End; Var n: integer; p, q, r: longint; a, b: Longint; Const { Интервал } _n = 10; _m = 1000; begin For n := 2 To 15 Do Begin p := 3 * PowerTwo(Pred(n)) - 1; q := 3 * PowerTwo(n) - 1; r := 9 * PowerTwo(Pred(2*n)) - 1; If isPrime(p) and isPrime(r) and isPrime(q) Then Begin a := PowerTwo(n) * p * q; b := PowerTwo(n) * r; If (a > _n) and (a < _m) and (b > _n) and (b < _m) Then WriteLn('The pair is: ', a:10, ' and ', b: 10) End; End; end. |
Ромка |
Сообщение
#17
|
Новичок Группа: Пользователи Сообщений: 17 Пол: Мужской Репутация: 0 |
Спасибо, вы очень помогли!
|
is there a legitimate canadian p |
Сообщение
#18
|
Гость |
cialis naproxen
|
buy zithromax z-pak without pres |
Сообщение
#19
|
Гость |
Low Testosterone Bph Propecia
|
Текстовая версия | 22.11.2024 21:59 |