М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
jekaroikp00z44
jekaroikp00z44
24.02.2023 22:04 •  Информатика

Ниже записана программа, которая вводит натуральное число x, выполняет преобразования, а затем выводит результат. Укажите наименьшее значение x, при вводе которого программа выведет число 45. x = int(input())
a = x - 61
b = 3*x - 138
while a != b:
if a > b:
a -= b
else:
b -= a
print(a)

Для решения я изменил данную в условии программу, но она не работает, подскажите , в чем ошибка?

for x1 in range(10000):
x=x1
a = x - 61
b = 3*x - 138
while a != b:
if a > b:
a -= b
else:
b -= a
if a==45:
print(x1)
break
(правильный ответ:106)

👇
Ответ:
8Мария11
8Мария11
24.02.2023

Здесь чутка надо подумать и увидеть, что мы должны в цикле for идти не от 0, а от числа 62, потому что если x < 62, то в переменной "a" мы получаем отрицательное число(или ноль в случае с x = 61), из-за этого наш цикл while будет выполняться бесконечно.

Исправление:

for x1 in range(62, 10009):

   x=x1

   a = x - 61

   b = 3*x - 138

   while a != b:

       if a > b:

           a -= b

       else:

           b -= a

   if a == 45:

       print(x1)

       break

4,7(17 оценок)
Открыть все ответы
Ответ:
sabinab13
sabinab13
24.02.2023
var P,i,kc,kn:integer;

Объявляем переменные P,i,kc,kn как целочисленный тип.

begin

Начало программы.

write('P='); //вводим целое число

Выводим на экран "P=".

readln(P);

Считываем переменную P с клавиатуры и переходим на новую строчку.

kc:=0; //четные делители

Присваиваем переменной kc, в которой будет храниться количество четных делителей, значение 0.

kn:=0; //нечетные делители

Присваиваем переменной kn, в которой будет храниться количество нечетных делителей, значение 0.

for i:=2 to P do //от 2 до P

Объявляем цикл с переменной i от 2 до P (до числа, которое мы ввели с клавиатуры).

if P mod i=0 then //если n делится на i, это делитель if odd(i)then inc(kn) else inc(kc); //нечетный или четный

Если остаток от деления P на i равен нулю, то есть P делится на i без остатка, то смотрим: если i нечетная, то увеличиваем kn на 1, иначе (то есть если i четная), увеличиваем kc на 1.

writeln('Количество четных делителей=',kc,' нечетных=',kn)

Выводим на экран:  "Количество четных делителей=",    значение переменной kc,     " нечетных=",      значение переменной kn".

end.

Конец программы.

4,4(19 оценок)
Ответ:
guzaliyakildi
guzaliyakildi
24.02.2023
var P,i,kc,kn:integer;

Объявляем переменные P,i,kc,kn как целочисленный тип.

begin

Начало программы.

write('P='); //вводим целое число

Выводим на экран "P=".

readln(P);

Считываем переменную P с клавиатуры и переходим на новую строчку.

kc:=0; //четные делители

Присваиваем переменной kc, в которой будет храниться количество четных делителей, значение 0.

kn:=0; //нечетные делители

Присваиваем переменной kn, в которой будет храниться количество нечетных делителей, значение 0.

for i:=2 to P do //от 2 до P

Объявляем цикл с переменной i от 2 до P (до числа, которое мы ввели с клавиатуры).

if P mod i=0 then //если n делится на i, это делитель if odd(i)then inc(kn) else inc(kc); //нечетный или четный

Если остаток от деления P на i равен нулю, то есть P делится на i без остатка, то смотрим: если i нечетная, то увеличиваем kn на 1, иначе (то есть если i четная), увеличиваем kc на 1.

writeln('Количество четных делителей=',kc,' нечетных=',kn)

Выводим на экран:  "Количество четных делителей=",    значение переменной kc,     " нечетных=",      значение переменной kn".

end.

Конец программы.

4,8(35 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ