Квадрат трехзначного числа оканчивается тремя цифрами

KyD1k

Квадрат трехзначного числа оканчивается тремя цифра¬ми, которые составляют взятое число. Разработать схему алгорит¬ма и написать программу для нахождения всех таких чисел.
5 ответов

KyD1k

Таких чисел вроде всего 2.. Эммм...как-то так..
procedure TForm1.Button1Click(Sender: TObject);
var
a,b,c,d,e,f:integer;
begin
Label1.Caption:='';
for a:=1 to 9 do
 for b:=0 to 9 do
  for c:=0 to 9 do
   for d:=1 to 9 do
    for e:=0 to 9 do
     for f:=0 to 9 do
   if
    100000*d+10000*e+1000*f+100*a+10*b+c=sqr(100*a+10*b+c)
     then
      Label1.Caption:=Label1.caption+IntToStr(100000*d+10000*e+1000*f+100*a+10*b+c)+#32+'';
      end;


KyD1k

По моему так короче, быстрее и понятнее...
for I:=100 to 999 do
  if (Sqr(I) mod 1000) = I then
    WriteLn(I)


KyD1k

Угумсь) Короче... Твой вариант лучше))


KyD1k

Kat297, а как будет это задание по паскалу


KyD1k

На основе решения от new_in_net. 1. В виде консольного приложения Delphi:
program Project1;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils, Windows;
 
var
  i, q : Integer;
begin
  //Переключение окна консоли на кодовую страницу CP1251 (Win-1251).
  //Если после переключения русские буквы показываются неверно,
  //следует открыть системное меню консольного окна - щелчком мыши в левом
  //верхнем углу окна консоли и выбрать:
  //Свойства - закладка "Шрифт" - выбрать шрифт: "Lucida Console".
  SetConsoleCP(1251);
  SetConsoleOutputCP(1251);
 
  Writeln('Перечень найденных чисел:');
  for i := 100 to 999 do begin
    q := i * i;
    if q mod 1000 = i then Writeln(i, '^2 = ', q);
  end;
 
  Writeln('Программа завершена. Для выхода нажмите Enter.');
  Readln;
end.
2. Pascal:
program Project1;
 
var
  i, q : Integer;
begin
  Writeln('Перечень найденных чисел:');
  for i := 100 to 999 do begin
    q := i * i;
    if q mod 1000 = i then Writeln(i, '^2 = ', q);
  end;
 
  Writeln('Программа завершена. Для выхода нажмите Enter.');
  Readln;
end.