// PascalABC.NET 3.3, сборка 1540 от 16.09.2017 // Внимание! Если программа не работает, обновите версию!
begin var n,p:integer; var s:string; for var a:=1 to 9 do for var b:=0 to 9 do for var c:=0 to 9 do begin n:=100*a+10*b+c; s:=(n*n).ToString.Right(3); p:=Pos(a.ToString,s); if p>0 then begin Delete(s,p,1); p:=Pos(b.ToString,s); if p>0 then begin Delete(s,p,1); if s=c.ToString then Write(n,'(',n*n,')',' ') end end end end.
Результат 205(42025) 376(141376) 421(177241) 625(390625) 963(927369)
*переводим большую единицу (Гб) в меньшую (Мб)* Что бы это сделать нужно 40 Гб * 1024 Но так как мы знаем что 1024 это 2^10, то получаться что 40Гб= 40* 2^10Мб чтобы найти кол-во дисков Нужно объем информации разделить (40 * 2^10) на объем дика (600) (40*2^10) \ (600) = (5*2^3*2^10) \ (75*2^3) *сокращаем 2^3* = =(5*2^10) \ (75) *возводим 2 в 10 степень и умножаем на 5* = =5120 \ 75 =68,2666... *округляем в большую сторону, т.к по условию задачи дано что информация должна занимать полностью диск* ОТВЕТ : 69
// Внимание! Если программа не работает, обновите версию!
begin
var n,p:integer;
var s:string;
for var a:=1 to 9 do
for var b:=0 to 9 do
for var c:=0 to 9 do begin
n:=100*a+10*b+c;
s:=(n*n).ToString.Right(3);
p:=Pos(a.ToString,s);
if p>0 then begin
Delete(s,p,1);
p:=Pos(b.ToString,s);
if p>0 then begin
Delete(s,p,1);
if s=c.ToString then Write(n,'(',n*n,')',' ')
end
end
end
end.
Результат
205(42025) 376(141376) 421(177241) 625(390625) 963(927369)