tìm số có 3 chữ số biết tổng của chúng bằng tích của chúng (tin 8)

2 câu trả lời

Tìm 1 số:

uses crt;
var x: longint;

function sumDigits(n: longint): longint;
var sum: longint;
begin
    sum:=0;
    while n <> 0 do 
        begin
            inc(sum, n mod 10);
            n:=n div 10;
        end;
    exit(sum);
end;

function t(n: longint): longint;
var p: longint;
begin
    p:=1;
    while n <> 0 do 
        begin
            p:=p * (n mod 10);
            n:=n div 10;  
        end;
    exit(p);
end;

begin
clrscr;
    x:=100;
    while x < 1000 do 
        begin
            if sumDigits(x) = t(x) then
                begin
                    write(x, ' ');
                    break;
                end else inc(x);
        end;
readln;
end.

Tìm nhiều số:

uses crt;
var x: longint;

function sumDigits(n: longint): longint;
var sum: longint;
begin
    sum:=0;
    while n <> 0 do 
        begin
            inc(sum, n mod 10);
            n:=n div 10;
        end;
    exit(sum);
end;

function t(n: longint): longint;
var p: longint;
begin
    p:=1;
    while n <> 0 do 
        begin
            p:=p * (n mod 10);
            n:=n div 10;  
        end;
    exit(p);
end;

begin
clrscr;
    x:=100;
    while x < 1000 do 
        begin
            if sumDigits(x) = t(x) then
                begin
                    write(x, ' ');
                    inc(x);
                end else inc(x);
        end;
readln;
end.

uses crt;

var i, j, k : byte;

begin

clrscr;

write('So can tim : ');

for i := 1 to 9 do

for j := 0 to 9 do

for k := 0 to 9 do

if (i + j + k) = (i * j * k) then write(i, j, k ,'   ');

readln

end.