@omg336

Задачка по python как решить?

Написать программу, которая для натурального числа, заданного в десятичной системе счисления, определит, в какой из систем счисления с основанием, являющимся простым числом, запись этого числа содержит больше всего максимальных цифр этой системы счисления.
По логике должен работать, а на практике ничего не происходит в чем дело?
a=int(input('Введите целое число от 1-1000: '))
b=[]
c=[]
d=[]

kol1=0
kol2=0
kol3=0

if a>=1 and a<=1000:
    b.append(bin(a))
    d.append(hex(a))
    c.append(oct(a))
    for i in b:
        if i==1:
            kol1+=1
    for x in c:
        if x==7:
            kol2+=1
    for k in d:
        if k=='f':
            kol3+=1
            
    if kol1>kol2 and kol1>kol3:
        print(2)
    elif kol2>kol1 and kol2>kol3:
        print(8)
    elif kol3>kol1 and kol3>kol2:
        print(16)
else:
    print('Введен неправильный тип данных')
  • Вопрос задан
  • 145 просмотров
Решения вопроса 2
kshnkvn
@kshnkvn
yay ✌️ t.me/kshnkvn
inp = int(input('Введите целое число от 1-1000: '))
conv ={
    'bin': bin(inp),
    'hex': hex(inp),
    'oct': oct(inp)
}
max_item = max(conv, key=conv.get)
print(f'{inp} = {conv[max_item]} ({max_item})')
Ответ написан
Комментировать
@Klork
for i in b:
        if i==1:
            kol1+=1

Если я правильно понимаю, то вы проверяете наличие переменной i равной 1 в списке b, если вы введете 1 то условие выполнится. Но вам нужно проверять каждую цифру в числе.
b = int(str(bin(a))[2:])
while b != 0:
        i = b % 10
        b = b // 10
        if i==1:
             kol1+=1

bin(a) возвращает строку 0b<твое число в двоичном виде>, ob - это обозначение что число является бинарным, у остальных они будут 0c и 0h. Делая срез строки мы и избавляемся от этого, а затем преобразуем в число.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Vsevo10d
Вы ведь понимаете, что никто не будет смотреть код, скопированный без отступов?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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