Вопрос задан 26.07.2023 в 10:04. Предмет Информатика. Спрашивает Ашихмин Тёма.

Помогите!!! 4. Первоклассные числа Ограничения: время - 200мс, память - 256МБ Если взять

натуральное число и найти сумму квадратов его цифр, затем сумму квадратов цифр результата и так далее, то через несколько шагов для некоторых из чисел получится число 1. Такие числа будем называть первоклассными. Например, первоклассным будет число 19, так как 1^2+9^2=82, 8^2+2^2=68, 6^2+8^2=100, 1^2+0^2+0^2=1. числа 2 или 5 первоклассными не являются. Напишите программу, которая находит количество первоклассных чисел среди чисел в диапазоне от А до В включительно. Первая строка ввода содержит два целых чисел А, В. Вывести одно целое число - количество первоклассных чисел среди чисел в диапазоне от А до В. Пример ввода1. Пример вывода1 5. 4 4 5 6 3 7. Пример ввода 2. Пример вывода 2 3 9 5 6. 1
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Михеев Александр.

PascalABC.NET 3.4.2, сборка 1847 от 28.10.2018

Внимание! Если программа не работает, обновите версию!

function СуммаКвадратовЦифр(Число: integer): integer;

begin

 Result := 0;

 while Число > 0 do

 begin

   Result += Sqr(Число mod 10);

   Число := Число div 10

 end

end;


function ЧислоПервоклассное(Число: integer): boolean;

begin

 Число := Abs(Число); // защита от злобных буратинок

 var L:=new SortedSet<integer>;

 L.Add(Число);

 repeat

   case Число of

     0, 2, 3:

       begin

         Result := False;

         Exit

       end;

     1:

       begin

         Result := True;

         Exit

       end;

     else

     begin

       Число := СуммаКвадратовЦифр(Число);

       if L.Contains(Число) then

       begin

         Result:=False;

         Exit

       end

       else L.Add(Число)

     end

   end

 until False // бесконечный цикл

end;


begin

 var (НижняяГраница, ВерхняяГраница) := ReadInteger2;

 var Количество := 0;

 for var ОчередноеЧисло := НижняяГраница to ВерхняяГраница do

   if ЧислоПервоклассное(ОчередноеЧисло) then Inc(Количество);

 Количество.Println

end.

1 100

20

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения этой задачи, можно создать функцию, которая проверяет, является ли число первоклассным, и затем использовать эту функцию для подсчета первоклассных чисел в заданном диапазоне от A до B.

Вот Python-программа, решающая задачу:

python
def is_prime_class(num): visited = set() while num != 1 and num not in visited: visited.add(num) num = sum(int(digit) ** 2 for digit in str(num)) return num == 1 def count_prime_class_numbers(start, end): count = 0 for num in range(start, end + 1): if is_prime_class(num): count += 1 return count # Чтение входных данных A, B = map(int, input().split()) # Подсчет первоклассных чисел в диапазоне от A до B result = count_prime_class_numbers(A, B) # Вывод результата print(result)

Вы можете вставить этот код в среду программирования Python и запустить, вводя два целых числа - начало диапазона (A) и конец диапазона (B). Программа вернет количество первоклассных чисел в указанном диапазоне.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос