2229 - numere20
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>