![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Ромка |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 17 Пол: Мужской Репутация: ![]() ![]() ![]() |
Составить программу для графического изображения делимости чисел от 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 Пол: Мужской Репутация: ![]() ![]() ![]() |
ne nashol !!!
|
Altair |
![]()
Сообщение
#4
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
плохо искал.
-------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Ромка |
![]()
Сообщение
#5
|
Новичок ![]() Группа: Пользователи Сообщений: 17 Пол: Мужской Репутация: ![]() ![]() ![]() |
Rebjat, mozhet prosto pomozhete... Esli vam vsjo jasno i do boli ponjatno...
|
Altair |
![]()
Сообщение
#6
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Поиск совершенных чисел.
Цитата Определенный интерес для любителей представляет программа поиска совершенных чисел. Ее схема проста: в цикле для каждого числа проверять сумму его делителей и сравнивать ее с самим числом, - если они равны, то это число совершенное. Код 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 Пол: Мужской Репутация: ![]() ![]() ![]() |
pishel ordinal expression expected na etoj stroke DO BEGIN N:=(I DIV Delitel);
|
Altair |
![]()
Сообщение
#8
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
так:
-------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Altair |
![]()
Сообщение
#9
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
еще один пост на транслите и тема будет закрыта!
-------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Ромка |
![]()
Сообщение
#10
|
Новичок ![]() Группа: Пользователи Сообщений: 17 Пол: Мужской Репутация: ![]() ![]() ![]() |
ссори, не заметил твоё мсг. всё транслиту - нет !!
давно пора, в XXI веке живем, есть поддержка всех языков... Сообщение отредактировано: Oleg_Z - 20.02.2005 22:29 |
Ромка |
![]()
Сообщение
#11
|
Новичок ![]() Группа: Пользователи Сообщений: 17 Пол: Мужской Репутация: ![]() ![]() ![]() |
Даны натуральные числа n и m. Найти все пары дружественных чисел, лежащих в диапазоне от n до m. Два числа называются дружественными, если каждое из них равно сумме всех делителей другого (само число в качестве делителя не рассматривается).
Что-то никак не получается... |
Altair |
![]()
Сообщение
#12
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
а ты покажи что получается...
Код в студию, что уже написанно. -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Ромка |
![]()
Сообщение
#13
|
Новичок ![]() Группа: Пользователи Сообщений: 17 Пол: Мужской Репутация: ![]() ![]() ![]() |
Код 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 Пол: Мужской Репутация: ![]() ![]() ![]() |
Спасибо. Ну может кто-то знает полегче вариант, а то этот я не осилю. я нуб...
|
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 Пол: Мужской Репутация: ![]() ![]() ![]() |
Спасибо, вы очень помогли!
|
![]() ![]() |
![]() |
Текстовая версия | 21.07.2025 6:48 |