2312 - GuIT
Cerinţa
Ghiţă s-a hotărât să plece de-acasă de Ignat, având nişte previziuni sumbre. Neavând bani, s-a gândit să-şi scoată un single de sezon, “guIT”. Din vânzarea lui a obţinut frumoasa sumă de n dolari.Pentru a câştiga un meniu vegetarian de Crăciun, trebuie să aflaţi suma numerelor prime din descompunerea lui n, ştiind că n este produs de trei numere prime distincte.
Date de intrare
Programul citește de la tastatură numărul n.
Date de ieşire
Programul va afișa pe ecran numărul S, reprezentând suma celor trei numere prime din descompunerea lui n.
Restricții și precizări
- 1 ≤ n ≤ 10^12
Exemplu
- Intrare
- 105
- Ieșire
- 15
Explicație
105 = 3•5•7, deci suma este 3+5+7=15.
Rezolvare
<syntaxhighlight lang="python" line> import math
def validare_date_numar(n):
if 1 <= int(n) <= 1000000: return True else: return False
def validare_date(k):
if 1 <= int(k) <= 1000: return True else: return False
def print_num(n, k):
s = 0 d = 2
while n > 1: p = 0 while n % d == 0: n //= d p += 1 if p > 0: s += d d += 1 if d * d > n: d = n
return s
if __name__ == '__main__':
n = input() k = input() if validare_date_numar(n) and validare_date(k): print("\nDatele de intrare corespund restricțiilor impuse.\n") numar = print_num(int(n), int(k)) print(numar) else: print("Datele de intrare nu corespund restricțiilor impuse.")
</syntaxhighlight>