summaryrefslogtreecommitdiff
path: root/python/problems/lists_and_for/divisors_sum/sl.py
blob: 4f5c10a7bdeb5c64545d0c046b8c68975b36a822 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# coding=utf-8
import server
mod = server.problems.load_language('python', 'sl')


id = 216
name = 'Vsota deliteljev'
slug = 'Vsota deliteljev'


description = '''\
<p> Napiši program, ki izpiše vsoto vseh deliteljev števila, ki ga vnese uporabnik. 
Med delitelji izpustite vnešeno število. Primer: </p>
<pre>
>>> Vpiši število: 6
Vsota deliteljev: 6
</pre>'''

input_clause = ['''\
Uporabi funkcijo <code>input</code>.
''']

range_function = ['''\
Uporabi funkcijo <code>range(a,b)</code>
''',
                  '''\
<p>Funkcija <code>range(a, b)</code> pripravi seznam števil od a do števila b-1. Poskusi!</p>''',
                  '''\
<p>Z zanko <code>for</code> se sprehodi čez elemente seznama oz. v našem primeru
čez vsa števila od <code>a</code> do <code>b-1</code>.</p>
''']

divisor = ['''\
<p>Operator % vrne ostanek pri deljenju.</p>''',
           '''\
<pre>
>>> 5%3
2
>>> 17%8
1
</pre>''',
           '''\
<p>Če je ostanek pri deljenju števila <code>a</code> s številom <code>b</code> enak 0, potem <code>b</code>
deli število <code>a</code>. </p>''',
           '''\
<pre>
if a%b == 0:
    # b je delitelj števila a
</pre>
''']

summing = ['''\
<p>Če hočemo delitelje prišteti vsoti, moramo imeti vsoto nekje shranjeno. 
Torej potrebujemo spremenljivko.</p>''',
           '''\
<p>Nekako tako: </p>
<pre>
vsota = 0
for ....
    if ...
        vsota += d # d deli izbrano število
</pre>''']

plan = ['''\
<p>Plan bo podoben kot v prejšnji naloge, kjer smo delitelje izpisali. 
Tokrat delitelja ne izpišemo, ampak ga prištejemo vsoti. </p>
''',
        summing]


hint = {
    'input_clause': input_clause,

    'range_function': range_function,

    'printing': ['''\
<p>Izpiši rezultat.</p>'''],

    'divisor': divisor,

    'last_number': ['''\
<p>Tokrat med delitelji ne upoštevamo vnešenega števila!</p>'''],

    'final_hint': ['''\
<p>Naloga rešena! <br>
Nakoč bomo znali to napisati krajše: </p>
<pre>
n = int(input("Vpiši število: "))
print(sum(i for i in range(1, n) if n % i == 0))
</pre>'''],

    'summing': summing,

    'zero_division': [mod.general_msg['error_head'],
                      mod.general_msg['general_exception'],
                      '''\
<p>Deljenje z nič ni dovoljeno!</p>''',
                      '''\
<p>Računanje ostanka z operatorjem % je tudi deljenje.''']

}