Предмет: Информатика, автор: geka24122006

Паскаль: вывести все счастливые числа на промежутке от а до б (а и б нужно вводить). Сколько цифр в числе не указано.Пожалуйста, подскажите, от этого задания и оценки зависит годовой табель
Ось українською: вивести всі щасливі числа на проміжку від а до б


MrSolution: Ну и какое число называется счастливым???
MrSolution: Это, кстати, контрольная работа?
geka24122006: Счастливое число - это когда сума одной половины цифр этого числа розана другой половине. Например число 23411900 будет счастливым потому что 2+3+1+4=1+9+0
geka24122006: не розана а ровно
geka24122006: :)
mirageKZ: Счастливое число (англ. lucky number) в теории чисел — натуральное число из множества, генерируемого «решетом», аналогичным решету Эратосфена, которое генерирует простые числа. Почитайте. Либо это надо было указывать в задании!!!! Столько времени потратил зря :(

Ответы

Автор ответа: mirageKZ
1

Если будут вопросы - задавай.

var

 m : array of integer;

 a, b, i, j : integer;

 

 procedure DelEl(ind:integer);

 var

   t:integer;

 begin

   for t := ind to length(m)-2 do

     m[t]:=m[t+1];

   setlength(m, length(m)-1);

  end;

 

 procedure ClearZ;

 var

   c:integer;

 begin

   c:=0;

   while c < length(m) do

     if m[c]=0 then

       DelEl(c)

     else

       inc(c)  

 end;

 

 procedure RemElem(p:integer);

 var

   step:integer;

 begin

   step:=m[p];

   j:=step-1;

   while j < length(m) do begin

     m[j]:=0;

     j:=j+step;

   end;  

 end;

 

begin

 write('Введите a :');

 readln(a);

 write('Введите b :');

 readln(b);

 

 (*заполним массив натуральными числами в диапазоне*)

 SetLength(m, b);

 for i := 1 to b do

   m[i-1]:=i;

 

 (*исключим все чётные числа*)

 RemElem(1);

 ClearZ;

   

 (*проходим решетом по массиву*)  

 i:=1;  

 while i<length(m) do begin

   RemElem(i);

   ClearZ;

   inc(i);

 end;

 

 (*печатаем счастливые числа в диапазоне*)

 for i:= 0 to length(m)-1 do

   if m[i]>=a then

     write(m[i], ' ');

end.

Приложения:

geka24122006: А можна сделать эту задачу испозуя только цыклы фор,вайл или оператор иф ? Потому что очень много всего чего мы вообще никогда не учили
geka24122006: :(
geka24122006: но все равно спасибо огромное, и вдруг Вы знаете как чуть проще решить
mirageKZ: Кто то даже поставил, что ответ Очень плохой. Ну и ладно, зато я узнал что такое счастливое число. Я старался делать проще, но сам алгоритм нахождения чисел не прост.
Похожие вопросы