1908 - Fractii Ired: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: == Cerinţa == Dându-se şirul de fracţii '''1/N, 2/N, 3/N, ...,N/N''', să se afle câte fracţii sunt ireductibile. == Date de intrare == Programul citește de la tastatură numărul '''N'''. == Date de ieşire == Programul va afișa pe ecran numărul de fracţii ireductibile. == Restricții și precizări == *'''1 ≤ n ≤ 2.000.000.022''' == Exemplu == ; Intrare :4 ; Ieșire : 2 == Explicație == Fracţiile sunt '''1/4, 3/4'''. == Rezolvare == <syntaxhighlight lang=...
 
No edit summary
 
Line 16: Line 16:
== Rezolvare ==
== Rezolvare ==
<syntaxhighlight lang="python" line>
<syntaxhighlight lang="python" line>
def validate_input(n):
def validare_date(n):
     if not isinstance(n, int) or n < 1:
     if not isinstance(n, int) or n < 1:
         return False
         return False
Line 23: Line 23:
if __name__ == '__main__':
if __name__ == '__main__':
     n = int(input("Introduceti numarul: "))
     n = int(input("Introduceti numarul: "))
     if validate_input(n):
     if validare_date(n):
         nr = n
         nr = n



Latest revision as of 11:27, 11 April 2023

Cerinţa[edit | edit source]

Dându-se şirul de fracţii 1/N, 2/N, 3/N, ...,N/N, să se afle câte fracţii sunt ireductibile.

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 de fracţii ireductibile.

Restricții și precizări[edit | edit source]

  • 1 ≤ n ≤ 2.000.000.022

Exemplu[edit | edit source]

Intrare
4
Ieșire
2

Explicație[edit | edit source]

Fracţiile sunt 1/4, 3/4.

Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line> def validare_date(n):

   if not isinstance(n, int) or n < 1:
       return False
   return True

if __name__ == '__main__':

   n = int(input("Introduceti numarul: "))
   if validare_date(n):
       nr = n
       d = 2
       while n > 1:
           if n % d == 0:
               nr //= d
               nr *= d - 1
               while n % d == 0:
                   n //= d
           if d == 2:
               d = 3
           else:
               d += 2
           if d * d > n:
               d = n
       print(nr)
       print("\nDatele de intrare corespund restricțiilor impuse.\n")
   else:
       print("Datele de intrare nu corespund restricțiilor impuse.")




</syntaxhighlight>

Explicație rezolvare[edit | edit source]

Codul Python calculează funcția Euler Totient pentru un număr natural introdus de utilizator. În timpul procesului de calcul, se parcurg divizorii primi distincti ai numărului și se aplică o formulă specifică pentru a obține valoarea funcției. Codul include, de asemenea, o verificare a datelor de intrare pentru a asigura validitatea acestora.