2312 - GuIT: Difference between revisions
Paul Matei (talk | contribs) No edit summary |
Paul Matei (talk | contribs) No edit summary |
||
(One intermediate revision by one other user not shown) | |||
Line 61: | Line 61: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==Explicație rezolvare== | ==Explicație rezolvare== | ||
Acesta este un cod Python care primește două numere, verifică dacă acestea sunt valide și apoi calculează suma factorilor primi ai primului număr care apar de cel puțin a doua valoare dată. Dacă numerele introduse sunt valide, codul va afișa suma factorilor primi, altfel va afișa un mesaj de eroare. | |||
Latest revision as of 10:57, 11 April 2023
Cerinţa[edit | edit source]
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[edit | edit source]
Programul citește de la tastatură numărul n.
Date de ieşire[edit | edit source]
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[edit | edit source]
- 1 ≤ n ≤ 10^12
Exemplu[edit | edit source]
- Intrare
- 105
- Ieșire
- 15
Explicație[edit | edit source]
105 = 3•5•7, deci suma este 3+5+7=15.
Rezolvare[edit | edit source]
<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>
Explicație rezolvare[edit | edit source]
Acesta este un cod Python care primește două numere, verifică dacă acestea sunt valide și apoi calculează suma factorilor primi ai primului număr care apar de cel puțin a doua valoare dată. Dacă numerele introduse sunt valide, codul va afișa suma factorilor primi, altfel va afișa un mesaj de eroare.