Помогите пожалуйста с ИНФОРМАТИКОЙ! В любом числе можно выделить некоторую непрерывную...

0 голосов
32 просмотров

Помогите пожалуйста с ИНФОРМАТИКОЙ!

В любом числе можно выделить некоторую непрерывную последовательность цифр, которая тоже будет некоторым числом. Требуется написать программу, которая находит максимальное натуральное число Х такое, что десятичная запись числа X^2 является подстрокой в десятичной записи числа N. Если такого числа нет, то вывести ноль.

Формат входных данных (допускается чтение с клавиатуры)
Вводится натуральное число N. 1 N 1 000 000 000.

Формат выходных данных (допускается вывод на экран)
Выведите максимальное натуральное число Х такое, что десятичная запись числа X2 является подстрокой в десятичной записи числа N.


Информатика (300 баллов) | 32 просмотров
0

Ничего не понимаю. X2 и X это одно и то же значение?

0

да

0

В таком случае выводите только что введённую N, строка может считаться сама себе подстрокой.

0

Не могли бы вы написать программу? Я что-то не понимаю..

0

А, вот, когда поправили, всё встало на свои места.

0

Простите, я опечатался)

Дан 1 ответ
0 голосов
Правильный ответ

//PascalABC.NET 3.2 сборка 1318
//Очередное решение "в лоб"

Var
  n,i,j,max:integer;
  s,curr:string;
  b:boolean=false;
begin
readln(n);
max:=-1;
s:=inttostr(n);
for i:=1 to length(s) do
  begin
    curr:='';
    for j:=i downto 1 do
      begin
        curr:=s[j]+curr;
        if frac(sqrt(strtoint(curr)))=0 then
          begin
            b:=true;
            if sqrt(strtoint(curr))>max then max:=round(sqrt(strtoint(curr)));
          end;
      end;
 end;
if b then writeln(max) else writeln('0');
end.

Пример ввода 1:
164
Пример вывода 1:
8
Пример ввода 2:
523
Пример вывода 2:
0

(38.6k баллов)