Софтуерно Инженерство
Loading...
+ Нов въпрос
MishoMoney avatar MishoMoney 15 Точки

7. Суми прости и непрости числа

Колеги,

Имам проблем със 7-ма задача. Кодът ми работи и според мене прави точно това, което се иска. Но джъдж ми дава само 60/100.

Някакви идеи в какво греша?

 

input_num = None
sum_non_prime = 0
sum_prime = 0

while not input_num == 'stop':
    input_num = input().lower()
    if not input_num == 'stop':
        input_num = int(input_num)
    else:
        break
    if input_num < 0:
        print('Number is negative.')
    else:
        for i in range(2, input_num):
            if input_num % i == 0:
                sum_non_prime += input_num
                break
            if i == input_num - 1:
                sum_prime += input_num

print(f'Sum of all prime numbers is: {sum_prime}')
print(f'Sum of all non prime numbers is: {sum_non_prime}')
Тагове:
0
MishoMoney avatar MishoMoney 15 Точки

Благодаря, твоят код дава 100/100. А и ми помогна да намеря грешката си. Моят код не ловеше 1 и 2. 

Сега го оправих и дава 100/100. Но товят начин е по-елегантен

 

input_num = None
sum_non_prime = 0
sum_prime = 0

while not input_num == 'stop':
    input_num = input().lower()
    if input_num == 'stop':
        break
    input_num = int(input_num)

    if input_num < 0:
        print('Number is negative.')
    elif input_num == 1:
        sum_non_prime += input_num
    else:
        for i in range(2, input_num):
            if input_num % i == 0 and not input_num == 2:
                sum_non_prime += input_num
                break
            if i == input_num - 1:
                sum_prime += input_num

        if input_num == 2:
            sum_prime +=2

print(f'Sum of all prime numbers is: {sum_prime}')
print(f'Sum of all non prime numbers is: {sum_non_prime}')
0