![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Вывести все натуральные числа из отрезка [M,N], сумма делителей которых равна сумме делителей числа, записанного теми же цифрами в обратном порядке. Использовать процедуру (функцию) нахождения суммы делителей числа.
Вот что у меня вышло Код:
{$APPTYPE CONSOLE}
uses
SysUtils;
Procedure del( k:integer;d:real);
var i,p:integer;
begin
d:=K+1;
p:=k div 2;
for i:=2 to p do
if ((k mod i)=0) then d:=d+i;
end;
var k,m,n,i,s:integer;d,t:real;
begin
writeln('k,m,n');
readln(k,m,n);
for i:=m to n do
begin
del(k,d);
del(i,t);
if d=t then write(i,' ');
end;
readln;
end.Не могу выполнить вот это условие -"записанного теми же цифрами в обратном порядке." |
|
#2
|
|||
|
|||
|
Код:
function ReverseStr(S : String) : String; var I : Integer; begin Result := ''; For I := 1 To Length(S) Do Result := S[i] + Result; end; function ReverseInt(N : Integer) : Integer; begin Result := StrToInt(ReverseStr(IntToStr(N))); end; |
|
#3
|
|||
|
|||
|
НЕобходимо сделать без строк...
Последний раз редактировалось Asira, 17.01.2011 в 22:28. |
|
#4
|
||||
|
||||
|
Первый пришедший в голову ответ на такое гневное сообщение 'нада денюжку платить!!'.
думаю побитовые сдвиги тебе тоже не подойдут.. ну вот например сделай деление с остатком на 10, пока остаток больше 10, итог:=итог*10+остаток от деления. Потом добавь последний остаток. Где то так. могу и код, но с телефона неудобно. Последний раз редактировалось Ferra, 11.01.2010 в 20:58. |
|
#5
|
|||
|
|||
|
Ага... Спасибо разберусь надеюсь
Последний раз редактировалось Asira, 17.01.2011 в 22:29. |