Cho phương trình: 2 x^2*s(x)*x-n=0 Trong đó x,n là những số nguyên dương, s(x) bằng tổng các chữ số của x . Yêu cầu: Cho trước giá trị .N Hãy tìm giá trị x nhỏ nhất thỏa mãn phương trình trên. Dữ liệu: Vào từ file văn bản SOLVE.INP có một số nguyên duy nhất 18(110).NN Kết quả: Ghi ra file văn bản SOLVE.OUT một số nguyên duy nhất x nhỏ nhất thỏa mãn phương trình. Trong trường hợp không tìm được x thì ghi ra -1

1 câu trả lời

uses crt, math;
var i, x:longint;
    n:qword;

function s(x:longint):word;
var res:word;
begin
    res:=0;
    while x <> 0 do
        begin
            inc(res, x mod 10);
            x:=x div 10;
        end;
    exit(res);
end;

begin
    clrscr;
    readln(n);
    x:=trunc(exp((1/3) * ln(n))) + 1;
    for i:=max(x - 300, 0) to x do
        if (i*i*i*s(i) = n) then 
            begin   
                write(i);
                exit;
            end;
    write(-1);
readln;
end.

Câu hỏi trong lớp Xem thêm