3663 - PPDP: Difference between revisions
Robert Manc (talk | contribs) Pagină nouă: == Cerinţa == Se dă un număr natural numit ”'''numar'''”. Calculați pătratul celui mai mic divizor propriu al său. == Date de intrare == Programul citește de la tastatură un număr natural numit ”'''numar'''”. == Date de ieşire == Programul va afișa pe ecran numărul calculat. == Restricții și precizări == * numar ∈ Ν * 4 ⩽ numar ⩽ 1.000.000.000 * se garantează că ”'''numar'''” nu este prim == Exemplu == ; Intrare : 12 ; Ieșire : Da... |
Diana Butuza (talk | contribs) |
||
Line 47: | Line 47: | ||
numar = input() | numar = input() | ||
if validare_date(numar): | if validare_date(numar): | ||
print("\nDatele | print("\nDatele introduse corespund restricțiilor impuse.\n") | ||
print(patrat_cel_mai_mic_divizor(int(numar))) | print(patrat_cel_mai_mic_divizor(int(numar))) | ||
else: | else: |
Revision as of 09:17, 10 April 2023
Cerinţa
Se dă un număr natural numit ”numar”. Calculați pătratul celui mai mic divizor propriu al său.
Date de intrare
Programul citește de la tastatură un număr natural numit ”numar”.
Date de ieşire
Programul va afișa pe ecran numărul calculat.
Restricții și precizări
- numar ∈ Ν
- 4 ⩽ numar ⩽ 1.000.000.000
- se garantează că ”numar” nu este prim
Exemplu
- Intrare
- 12
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- 4
Explicație
Cel mai mic divizor al lui 12 este 2 iar pătratul acestei valori este 4.
Rezolvare
<syntaxhighlight lang="python" line> def validare_date(numar):
flag = False if numar.isdigit() and 4 <= int(numar) <= 1_000_000_000: flag = True if prim(int(numar)): flag = False return flag
def prim(numar):
if numar <= 1: return False for i in range(2, numar // 2 + 1): if numar % i == 0: return False return True
def patrat_cel_mai_mic_divizor(numar):
divizor = 2 while numar % divizor != 0: divizor += 1 return divizor**2
if __name__ == '__main__':
numar = input() if validare_date(numar): print("\nDatele introduse corespund restricțiilor impuse.\n") print(patrat_cel_mai_mic_divizor(int(numar))) else: print("Datele de intrare nu corespund restricțiilor impuse.")
</syntaxhighlight>