Другие языки программирования и технологии
помогите доделать программу по паскалю пожалуйста
4.Составьте программу вывода на экран всех натуральных чисел, не превосходящих N и делящихся на каждую из своих цифр (используя процедуры или функции). надо создать счетчик который считает количество заходов и количество делений и на основании этого судить о числах делящихся на каждую из своих цифр....помогите пожалуйста. как это сделать??? program Project7; {$APPTYPE CONSOLE} uses SysUtils; Var i, N :integer; function delenie(x:integer): integer; Var a:integer; begin while x <> 0 do begin a:=x mod 10; if (x mod a =0) then x := x div 10; end; end; begin write('vvedite chislo N '); readln(N); for i:=1 to N do write(delenie(i)); readln; { TODO -oUser -cConsole Main : Insert code here } end.
Var i, N :integer;
function delenie(x:integer): boolean;
Var
a:integer;
rez : boolean;
begin
rez := true;
while x <> 0 do
begin
a:=x mod 10;
if a=0 then begin rez:=false; break end;
if (x mod a <>0) then begin rez:=false; break end;
x := x div 10;
end;
delenie:= rez;
end; {конец функции}
begin
write('vvedite chislo N ');
readln(N);
for i := 1 to N do
if delenie ( i ) then write ( i, ' ');
end.
function delenie(x:integer): boolean;
Var
a:integer;
rez : boolean;
begin
rez := true;
while x <> 0 do
begin
a:=x mod 10;
if a=0 then begin rez:=false; break end;
if (x mod a <>0) then begin rez:=false; break end;
x := x div 10;
end;
delenie:= rez;
end; {конец функции}
begin
write('vvedite chislo N ');
readln(N);
for i := 1 to N do
if delenie ( i ) then write ( i, ' ');
end.
uses crt;
var n,i,m:integer;
c,kd,kc,f:byte;
begin
clrscr;
writeln('Введите число n=');
readln(n);
writeln('Числа делятся на все свои цифры: ');
for i:=1 to n do
begin
m:=i;
kd:=0;
kc:=0;
while m>0 do
begin
c:=m mod 10;{цифры}
kc:=kc+1;{их общее количество}
if (c <> 0) and (i mod c=0)then{если цифра не ноль и делит}
kd:=kd+1;{количество делителей}
m:=m div 10;
end;
if kd=kc then write(i,' ');
end;
readln
end.
Можно еще так, используя функцию
uses crt;
function DelCif(x:longint):boolean;
var y:longint;
k:byte;
begin
DelCif:=true;
y:=x;
while y <> 0 do
begin
k:=y mod 10;
if (k=0)or(x mod k <> 0)then
begin
DelCif:=false;
break;
end;
y:=y div 10;
end;
end;
var n,i,k:longint;
begin
clrscr;
write('Введите N=');
readln(n);
writeln('Числа делятся на все свои цифры: ');
for i:=1 to n do
if DelCif(i) then
begin
write(i,' ');
k:=k+1;
end;
readln;
end.
var n,i,m:integer;
c,kd,kc,f:byte;
begin
clrscr;
writeln('Введите число n=');
readln(n);
writeln('Числа делятся на все свои цифры: ');
for i:=1 to n do
begin
m:=i;
kd:=0;
kc:=0;
while m>0 do
begin
c:=m mod 10;{цифры}
kc:=kc+1;{их общее количество}
if (c <> 0) and (i mod c=0)then{если цифра не ноль и делит}
kd:=kd+1;{количество делителей}
m:=m div 10;
end;
if kd=kc then write(i,' ');
end;
readln
end.
Можно еще так, используя функцию
uses crt;
function DelCif(x:longint):boolean;
var y:longint;
k:byte;
begin
DelCif:=true;
y:=x;
while y <> 0 do
begin
k:=y mod 10;
if (k=0)or(x mod k <> 0)then
begin
DelCif:=false;
break;
end;
y:=y div 10;
end;
end;
var n,i,k:longint;
begin
clrscr;
write('Введите N=');
readln(n);
writeln('Числа делятся на все свои цифры: ');
for i:=1 to n do
if DelCif(i) then
begin
write(i,' ');
k:=k+1;
end;
readln;
end.
Похожие вопросы
- Помогите написать программу в Паскале, пожалуйста. см ниже
- Помогите пожайлуста доделать программу в паскале! Не получается ((
- Помогите доделать программу перевод из морзе на Паскале.
- помогите доделать код на паскале
- Помогите составить программу на паскале!
- помогите с программами в паскале
- Помогите доделать программу пожалуйста ) На языке Си
- Помогите решить программу в паскале)
- Помогите доделать программу
- ПОЖАЛУЙСТА ПОМОГИТЕ РЕШИТЬ ПРОГРАММУ НА ПАСКАЛЕ!