![]() |
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. Два числа называются дружественными, если каждое из них равно сумме всех делителей другого (само число в качестве делителя не рассматривается). |
![]() ![]() |
Ромка |
![]()
Сообщение
#2
|
Новичок ![]() Группа: Пользователи Сообщений: 17 Пол: Мужской Репутация: ![]() ![]() ![]() |
Спасибо. Ну может кто-то знает полегче вариант, а то этот я не осилю. я нуб...
|
volvo |
![]()
Сообщение
#3
|
Гость ![]() |
Цитата(Ромка @ 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. |
![]() ![]() |
![]() |
Текстовая версия | 21.07.2025 6:56 |