Найти все натуральные числа, не превосходящие данного n, которые делятся на каждую из своих цифр
Категория: Delphi/Pascal
2011-12-26 23:25:55
code: #delphi
//На форме размещаем Edit1 для ввода N, Button1 и Memo1 для вывода данных. //На Memo1 помещаем полосу вертикальной прокрутки для вывода большого //количества чисел. procedure TForm1.Button1Click(Sender: TObject); var n:longint;i:integer; //Создаем функцию логического типа,определяющую делится или нет //число на все свои цифры. function Del(a:integer):boolean; var k,i,b:integer;c:boolean; begin k:=0;i:=0;b:=a; while b>0 do begin n:=b mod 10;//находим последнюю цифру if n=0 then //если она 0, заканчиваем цикл begin c:=false;exit; end else begin i:=i+1;//считаем количество цифр if a mod n=0 then k:=k+1;//считаем количества положительных результатов b:=b div 10;//отбрасываем использованную цифру end; end; if k=i then c:=true//делится не все цифры else c:=false; //не на все цифры result:=c; end; begin n:=strtoint(edit1.text); //вводим N for i:=1 to n do if Del(i)=true then //исследуем все числа от 1 до N memo1.Text:=memo1.Text+inttostr(i)+' '; end; end.
автор: puporev
Поделиться: