Уровень B. Напишите логическую функцию, которая определяет, являются ли два переданные ей числа взаимно простыми, то есть, не имеющими общих делителей, кроме 1.
Пример:
Введите два натуральных числа:
28 15
Числа 28 и 15 взаимно простые.
Пример:
Введите два натуральных числа:
28 16
Числа 28 и 16 не взаимно простые.
Уровень C. Простое число называется гиперпростым, если любое число, получающееся из него откидыванием нескольких последних цифр, тоже является простым. Например, число 733 – гиперпростое, так как и оно само, и числа 73 и 7 – простые. Напишите логическую функцию, которая определяет, верно ли, что переданное ей число – гиперпростое. Используйте уже го-товую функцию isPrime, которая приведена в учебнике.
Пример:
Введите натуральное число:
733
Число 733 гиперпростое.
Пример:
Введите натуральное число:
19
Число 19 не гиперпростое.
Python
ПОМОГИТЕ, ПОЖАЛУЙСТА, РЕШИТЬ ИНФОРМАТИКУ. Язык программирования Python
В.
from math import gcd
def f(m, n): return True if gcd(m, n) == 1 else False
while True:
print('Введите два натуральных числа:')
m, n = map(int, input().split())
print('Числа', m, 'и', n, end = '')
print(' взаимно простые' if f(m, n) else ' не взаимно простые')
Андрей Панин
а почему результат бесконечность раз печатает?
Андрей Цыбулько
gcd что это?
Андрей Цыбулько
Нет ребятушки так дело не пойдёт. Тут надо самим писать. Это задание на логику.
Андрей Цыбулько
Да мне пофигу.. меня гипер простое число заинтересовало.
B.
C.
from math import gcd
a, b = [int(n) for n in input('Введите два натуральных числа:\n').split()]
print(f'Числа {a} и {b}' + ' не' * (gcd(a, b) != 1) + ' взаимно простые.'
C.
def is_prime(n):
return [n % i == 0 for i in range(1, n + 1)].count(True) == 2
number = input('Введите натуральное число:\n')
res = [is_prime(int(number[:c + 1])) for c in range(len(number))]
print('Число', int(number), 'не ' * (not all(res)) + 'гиперпростое.')
Андрей Панин
квадратные скобки это вроде массивы, да?
Для того, чтобы написать логическую функцию в Python, вы должны использовать ключевое слово def для определения имени функции и параметров, а затем возвращать значение True или False в зависимости от условия.
Для того, чтобы определить, являются ли два числа взаимно простыми, вы должны найти их наибольший общий делитель (НОД) и проверить, равен ли он единице. Вы можете использовать алгоритм Евклида для нахождения НОД двух чисел.
Вот возможный код для решения уровня B:
Вот возможный код для решения уровня C:
Для того, чтобы определить, являются ли два числа взаимно простыми, вы должны найти их наибольший общий делитель (НОД) и проверить, равен ли он единице. Вы можете использовать алгоритм Евклида для нахождения НОД двух чисел.
Вот возможный код для решения уровня B:
def gcd(a,b):
if a == 0:
return b
elif b == 0:
return a
else:
return gcd(b,a%b)
def is_coprime(a,b):
if gcd(a,b) == 1:
return True
else:
return False
a = int(input("Введите первое натуральное число: "))
b = int(input("Введите второе натуральное число: "))
if is_coprime(a,b):
print(f"Числа {a} и {b} взаимно простые.")
else:
print(f"Числа {a} и {b} не взаимно простые.")
Для того, чтобы решить уровень C, вы должны использовать уже готовую функцию isPrime, которая проверяет, является ли число простым. Затем вы должны написать логическую функцию, которая откидывает последние цифры числа и проверяет их на простоту с помощью функции isPrime. Если все полученные числа простые, то исходное число гиперпростое. Вот возможный код для решения уровня C:
def isPrime(n):
if n < 2:
return False
for i in range(2,int(n**0.5)+1):
if n % i == 0:
return False
return True
def isHyperPrime(n):
while n > 0:
if not isPrime(n):
return False
n = n // 10
return True
n = int(input("Введите натуральное число: "))
if isHyperPrime(n):
print(f"Число {n} гиперпростое.")
else:
print(f"Число {n} не гиперпростое.")
Похожие вопросы
- Помогите пожалуйста решить задачу по программированию наpython.
- Решите с помощью языка программирования Python!
- Нужна помощь.(Язык программирования Python)
- Помогите, пожалуйста, решить задачу Python
- Как изучить язык программирования Python ?
- Люди которые знают язык программирования Python, расскажите сколько на это ушло времени и где вы учили Python?
- По поводу языка программирования Python...
- Где и как эфективнее всего изучать язык программирования Python?
- Как написать цикл на языке программирования Python
- Язык программирования Python, словари и множества