2229 - numere20

From Bitnami MediaWiki
Revision as of 11:29, 9 January 2024 by Aurelia Raluca (talk | contribs) (Pagină nouă: == Enunt == Ionel are de rezolvat mai multe probleme de divizibilitate. Unele dintre ele îi cer să afle câte numere au anumite proprietăţi. Vă rugăm să-l ajutaţi să termine tema mai repede. == Cerința == Scrieţi un program care citeşte un număr natural n şi două numere prime u şi v mai mici decât 10 şi determină câte numere naturale mai mici sau egale cu n au proprietatea că nu sunt divizibile nici cu u, nici cu v. == Date de intrare == Fișierul de...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Enunt

Ionel are de rezolvat mai multe probleme de divizibilitate. Unele dintre ele îi cer să afle câte numere au anumite proprietăţi. Vă rugăm să-l ajutaţi să termine tema mai repede.

Cerința

Scrieţi un program care citeşte un număr natural n şi două numere prime u şi v mai mici decât 10 şi determină câte numere naturale mai mici sau egale cu n au proprietatea că nu sunt divizibile nici cu u, nici cu v.

Date de intrare

Fișierul de intrare numere20.in conţine pe prima linie numărul natural n şi cifrele u şi v, separate prin câte un spaţiu.

Date de ieșire

Fișierul de ieșire numere20.out va conţine o singură linie pe care va fi scris numărul de numere naturale mai mici sau egale cu n care nu sunt divizibile nici cu u, nici cu v.

Restricții și precizări

  • Numărul natural n are cel mult 100 de cifre

Exemplul 1

numere20in.txt
30 3 7
numere20in.txt
Datele introduse corespund restrictiilor impuse.
17

Exemplul 2

numere20in.txt
0
numere20out.txt
Datele de intrare nu corespund restrictiilor impuse.

Rezolvare

<syntaxhighlight lang="python3" line="1">

def numere_fara_divizori(n, u, v):

   count = 0
   for numar in range(1, n + 1):
       if numar % u != 0 and numar % v != 0:
           count += 1
   return count

def main():

   n = int(input("Introduceți un număr natural n: "))
   u = int(input("Introduceți un număr prim u mai mic decât 10: "))
   v = int(input("Introduceți un număr prim v mai mic decât 10: "))
   if u >= 10 or v >= 10 or not (1 < u < 10 and 1 < v < 10):
       print("Eroare: u și v trebuie să fie numere prime mai mici decât 10.")
       return
   rezultat = numere_fara_divizori(n, u, v)
   print(f"Câte numere naturale mai mici sau egale cu {n} nu sunt divizibile nici cu {u}, nici cu {v}? 

if __name__ == "__main__":

   main()


</syntaxhighlight>