Goldbach #!/usr/bin/env python3 def primes(n): l = range(2, n + 1) p = [] while l: p.append(l[0]) l = [x for x in l if (x % l[0] != 0)] return p def goldbach(n): p = primes(n) pair = [] print(p) for i in range(len(p)): for j in range(i, len(p)): if p[i] + p[j] == n: pair.append((p[i],p[j])) return pair if __name__ == '__main__': n = int(input('n -> ')) print(goldbach(n)) Horoskop #!/usr/bin/env python3 astrolog_signs = '''♈ Aries (Ram): March 21–April 19. ♉ Taurus (Bull): April 20–May 20. ♊ Gemini (Twins): May 21–June 21. ♋ Cancer (Crab): June 22–July 22. ♌ Leo (Lion): July 23–August 22. ♍ Virgo (Virgin): August 23–September 22. ♎ Libra (Balance): September 23–October 23. ♏ Scorpius (Scorpion): October 24–November 21. ♐ Sagittarius (Archer): November 22–December 21. ♑ Capricornus (Goat): December 22–January 19. ♒ Aquarius (Water_Bearer): January 20–February 18. ♓ Pisces (Fish): February 19–March 20.''' signs_dat = {'Oven':[('Marec', 21), ('April',19)], 'Bik': [('April', 20), ('Maj', 20)], 'Dvojčka': [('Maj', 21), ('Junij', 21)], 'Rak': [('Junij', 22), ('Julij', 22)], 'Lev': [('Julij', 23), ('Avgust', 22)], 'Devica': [('Avgust', 23) ,('September', 22)], 'Tehtnica': [('September', 23), ('Oktober', 23)], 'Škorpion': [('Oktober', 24), ('November', 21)], 'Strelec': [('November', 22), ('December', 21)], 'Kozorog': [('December', 22), ('Januar', 19)], 'Vodnar': [('Januar', 20),('Februar', 18)], 'Ribi': [('Februar', 19), ('Marec', 20)]} meses = {'Januar':1, 'Februar':2, 'Marec':3,'April':4, 'Maj':5, 'Junij':6, 'Julij':7, 'Avgust':8, 'September':9, 'Oktober':10, 'November':11, 'December':12} znaki = {'Oven':'♈', 'Bik':'♉', 'Dvojčka':'♊', 'Rak':'♋', 'Lev':'♌', 'Devica':'♍', 'Tehtnica':'♎', 'Škorpion':'♏', 'Strelec':'♐', 'Kozorog':'♑', 'Vodnar':'♒', 'Ribi':'♓'} intervals = {} for x in signs_dat: y = signs_dat[x] a = meses[y[0][0]]*100 + y[0][1] b = meses[y[1][0]]*100 + y[1][1] intervals[x] = [a, b] print(intervals) def vsebuje(m): for x in intervals: if intervals[x][0] <= m <= intervals[x][1]: return x return 'Kozorog' mesec, dan = input('mesec dan -> ').split() m = 100*meses[mesec] + int(dan) znak = vsebuje(m) print(znak, znaki[znak]) Palindrom #!/usr/bin/env python3 def palindrom(n): m = n[::-1] return str(int(n) + int(m)) if __name__ == '__main__': n = input('n -> ') m = palindrom(n) while m != n[::-1]: n = palindrom(m) m = n print(n) Piramida #!/usr/bin/env python3 def visina(n): s = 0 m = 1 i = 0 while s <= n: print(s, i, m) i += 1 s += m**2 m += 2 return i - 1 if __name__ == '__main__': n = int(input('n -> ')) print(visina(n)) Postfix_log #!/usr/bin/env python3 stack = [] logc = {False: 'F', True: 'T'} logi = {'F': False, 'T': True} def AND(x, y): return x and y def OR(x, y): return x or y def NEG(x): return not x binryf = {"*": AND, "+": OR} unaryf = {"-": NEG} def postfix(expression): for ch in expression: if ch in binryf: stack.append(binryf[ch](stack.pop(),stack.pop())) elif ch in unaryf: stack[-1] = unaryf[ch](stack[-1]) else: stack.append(logi[ch]) print(stack) return logc[stack[-1]] if __name__ == "__main__": expression = input('postix expr -> ') print(postfix(expression)) Pretvori #!/usr/bin/env python3 def pretvori(a, b): i = 0 if a < b: while a < b: a += 1 i += 1 print (a, b) return i else: while a > b: if a % 2 != 0: a += 1 i += 1 print(a, b) else: a //= 2 i += 1 print(a, b) if a == b: return i else: while a < b: a += 1 i += 1 print(a, b) return i def izravnaj(a, b): pass if __name__ == '__main__': a, b = [int(x) for x in input("a b --> ").split()] print(pretvori(a, b)) Vislice #!/usr/bin/env python3 def to_hung(a, b): for ch in b: a = a.replace(ch, '') if len(a) == 0: return 'WIN' return 'LOSE' a1 = 'HANGMAN' b1 = 'ABCDEFGHIJKL' c1 = 'LOSE' a2 = 'BANANA' b2 = 'ABCDGHN' c2 = 'WIN' a3 = 'RAINBOWS' b3 = 'RSIANBVOW' c3 = 'WIN' print(to_hung(a1, b1)) print(to_hung(a2, b2)) print(to_hung(a3, b3))