39 lines
718 B
ObjectPascal
39 lines
718 B
ObjectPascal
program Super_D;
|
|
uses
|
|
sysutils,gmp;
|
|
|
|
var
|
|
s :ansistring;
|
|
s_comp : ansistring;
|
|
test : mpz_t;
|
|
i,j,dgt,cnt : NativeUint;
|
|
Begin
|
|
mpz_init(test);
|
|
|
|
for dgt := 2 to 9 do
|
|
Begin
|
|
//create '22' to '999999999'
|
|
i := dgt;
|
|
For j := 2 to dgt do
|
|
i := i*10+dgt;
|
|
s_comp := IntToStr(i);
|
|
writeln('Finding ',s_comp,' in ',dgt,'*i**',dgt);
|
|
|
|
i := dgt;
|
|
cnt := 0;
|
|
repeat
|
|
mpz_ui_pow_ui(test,i,dgt);
|
|
mpz_mul_ui(test,test,dgt);
|
|
setlength(s,mpz_sizeinbase(test,10));
|
|
mpz_get_str(pChar(s),10,test);
|
|
IF Pos(s_comp,s) <> 0 then
|
|
Begin
|
|
write(i,' ');
|
|
inc(cnt);
|
|
end;
|
|
inc(i);
|
|
until cnt = 10;
|
|
writeln;
|
|
end;
|
|
mpz_clear(test);
|
|
End.
|