Код на питона и на с Разложение на чётнопростые
В этой задаче рассматриваются только чётные целые числа.
Чётное натуральное число n будем называть чётнопростым числом, если его нельзя представить в виде произведения двух чётных чисел. Например, числа 2 и 6 — чётнопростые.
Очевидно, что каждое число либо является чётнопростым, либо разлагается в произведение чётнопростых. Но такое разложение на чётнопростые не всегда единственно.
Входные данные
Дано чётное натуральное n≤109.
Выходные данные
Если число n чётнопростое, выведите слово prime. Если это число единственным образом разлагается в произведение двух и более чётнопростых, то выведите слово single, а в следующей строке выведите разложение этого числа на чётнопростые множители. Если число допускает несколько различных разложений на чётнопростые, то выведите слово many, а в следующих двух строках выведите два каких-нибудь различных разложения числа на чётнопростые множители.
Примеры
Ввод 1
6
Вывод
prime
Ввод 2
4
Вывод
single
2 2
очень на вас надеюсь
from math import sqrt
inpABC = list(map(int, input("Введите коэффиценты a, b, c: ").split()))
a = inpABC[0]
b = inpABC[1]
c = inpABC[2]
d = b*b-4*a*c
if d < 0:
print("Корней нет")
else:
if d == 0:
x = -b/(2*a)
print("Корень уравнения x=", x)
else:
if d > 0:
x1 = (-b+sqrt(d))/(2*a)
x2 = (-b-sqrt(d))/(2*a)
print("Корни уравнения:\nx1=",x1,"x2=",x2)
# 2 вариант с функцией
def Kbyp(a,b,c):
d = b*b-4*a*c
if d < 0:
print("Корней нет")
elif d == 0:
x = -b/(2*a)
print("Корень уравнения x=", x)
elif d > 0:
x1 = (-b+sqrt(d))/(2*a)
x2 = (-b-sqrt(d))/(2*a)
print("Корни уравнения:\nx1=",x1,"x2=",x2)
inpABC = list(map(int, input("Введите коэффиценты a, b, c: ").split()))
Kbyp(inpABC[0], inpABC[1], inpABC[2])
Сначала переведем 40 в двоичную для этого будем делить пока не останется единица
40 /2
-40 ---20/2
0 -20---10/2
0 -10---5/2
0 -4---2/2
1 -2---1
0
После этого с правой стороны получаем число по остаткам от деления
Получилось число 101000 в двоичной системе
52 так легко не перервести, поэтому сначала переведем в десятичную,а
для этого будем умножать
2*8(0)степени+5*2(1)степени=2+40=42(в десятичной)
Теперь опять в двоичную переводим
42/2
-42---21/2
0 -20 ---10/2
1 -10---5/2
0 -4---2/2
1 -2 ---1
0
Получилось 101010
А теперь сравниваем с ответами : подходит 3) 101000<101001<101010