Numbers divisible by their individual digits, but not by the product of their digits.: Difference between revisions

m
→‎{{header|Nim}}: append =={{header|Pascal}}==
(Added solution for Action!)
m (→‎{{header|Nim}}: append =={{header|Pascal}}==)
Line 1,077:
424 444 448 488 515 555 636 648 666
728 777 784 824 848 864 888 936 999</pre>
=={{header|Pascal}}==
==={{header|Free Pascal}}===
<lang pascal>
program DivByDgtsNotByProdOfDgts;
 
function ProdDigits(n:cardinal):cardinal;
// returns product of Digits if n is divisible by digits
var
p,q,r,dgt : cardinal;
begin
q := n;
p := 1;
repeat
r := q DIV 10;
dgt := q-10*r;
if (dgt= 0)OR(n mod dgt <> 0) then
EXIT(0);
p := p*dgt;
q := r;
until q = 0;
Exit(p)
end;
 
const
LimitLow = 1;
LimitHigh = 1000;
var
i,mul,cnt : Cardinal;
BEGIN
cnt := 0;
writeln('Limits ',LimitLow,'..',LimitHigh);
For i := LimitLow to LimitHigh do
begin
mul := ProdDigits(i);
if (mul <> 0) AND (i MOD MUL<>0) then
Begin
write(i:4);
inc(cnt);
if cnt AND 15= 0 then
writeln;
end;
end;
if cnt AND 15 <> 0 then
writeln;
writeln(' count : ',cnt);
END.</lang>
{{out}}
<pre>
Limits 1..1000
22 33 44 48 55 66 77 88 99 122 124 126 155 162 168 184
222 244 248 264 288 324 333 336 366 396 412 424 444 448 488 515
555 636 648 666 728 777 784 824 848 864 888 936 999
count : 45</pre>
 
=={{header|Perl}}==
Anonymous user