# coding=utf-8 import server mod = server.problems.load_language('python', 'sl') id = 216 name = 'Vsota deliteljev' slug = 'Vsota deliteljev' description = '''\
Napiši program, ki izpiše vsoto vseh deliteljev števila, ki ga vnese uporabnik. Med delitelji izpustite vnešeno število. Primer:
>>> Vpiši število: 6 Vsota deliteljev: 6''' input_clause = ['''\ Uporabi funkcijo
input
.
''']
range_function = ['''\
Uporabi funkcijo range(a,b)
''',
'''\
Funkcija range(a, b)
pripravi seznam števil od a do števila b-1. Poskusi!
Z zanko for
se sprehodi čez elemente seznama oz. v našem primeru
čez vsa števila od a
do b-1
.
Operator % vrne ostanek pri deljenju.
''', '''\>>> 5%3 2 >>> 17%8 1''', '''\
Če je ostanek pri deljenju števila a
s številom b
enak 0, potem b
deli število a
.
if a%b == 0: # b je delitelj števila a'''] summing = ['''\
Če hočemo delitelje prišteti vsoti, moramo imeti vsoto nekje shranjeno. Torej potrebujemo spremenljivko.
''', '''\Nekako tako:
vsota = 0 for .... if ... vsota += d # d deli izbrano število'''] plan = ['''\
Plan bo podoben kot v prejšnji naloge, kjer smo delitelje izpisali. Tokrat delitelja ne izpišemo, ampak ga prištejemo vsoti.
''', summing] hint = { 'input_clause': input_clause, 'range_function': range_function, 'printing': ['''\Izpiši rezultat.
'''], 'divisor': divisor, 'last_number': ['''\Tokrat med delitelji ne upoštevamo vnešenega števila!
'''], 'final_hint': ['''\Naloga rešena!
Nakoč bomo znali to napisati krajše:
n = int(input("Vpiši število: ")) print(sum(i for i in range(1, n) if n % i == 0))'''], 'summing': summing, 'zero_division': [mod.general_msg['error_head'], mod.general_msg['general_exception'], '''\
Deljenje z nič ni dovoljeno!
''', '''\Računanje ostanka z operatorjem % je tudi deljenje.'''] }