3308 - N Div Tri: Difference between revisions
Paul Matei (talk | contribs) Pagină nouă: == Cerinţa == Șirul numerelor triunghiulare e obținut prin adunarea numerelor naturale. Deci al șaptelea număr triunghiular e '''1 + 2 + 3 + 4 + 5 + 6 + 7 = 28'''. Primii '''10''' termeni din șir sunt: '''1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ...''' Să listăm toți divizorii primelor '''7''' numere triunghiulare: '''1: 1 3: 1,3 6: 1,2,3,6 10: 1,2,5,10 15: 1,3,5,15 21: 1,3,7,21 28: 1,2,4,7,14,28''' Se poate observa că '''28''' e primul număr triunghiular care are... |
Diana Butuza (talk | contribs) |
||
Line 2: | Line 2: | ||
Șirul numerelor triunghiulare e obținut prin adunarea numerelor naturale. Deci al șaptelea număr triunghiular e '''1 + 2 + 3 + 4 + 5 + 6 + 7 = 28'''. Primii '''10''' termeni din șir sunt: '''1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ...''' | Șirul numerelor triunghiulare e obținut prin adunarea numerelor naturale. Deci al șaptelea număr triunghiular e '''1 + 2 + 3 + 4 + 5 + 6 + 7 = 28'''. Primii '''10''' termeni din șir sunt: '''1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ...''' | ||
Să listăm toți divizorii primelor '''7''' numere triunghiulare: | Să listăm toți divizorii primelor '''7''' numere triunghiulare: | ||
1: 1 | |||
3: 1,3 | |||
6: 1,2,3,6 | |||
10: 1,2,5,10 | 10: 1,2,5,10 | ||
15: 1,3,5,15 | 15: 1,3,5,15 | ||
21: 1,3,7,21 | 21: 1,3,7,21 | ||
28: 1,2,4,7,14,28 | 28: 1,2,4,7,14,28 | ||
Se poate observa că '''28''' e primul număr triunghiular care are mai mult de '''5''' divizori. | Se poate observa că '''28''' e primul număr triunghiular care are mai mult de '''5''' divizori. | ||
Se dă un număr natural '''n'''. Să se scrie un program care determină '''primul număr triunghiular''' cu mai mult de '''n''' divizori. | Se dă un număr natural '''n'''. Să se scrie un program care determină '''primul număr triunghiular''' cu mai mult de '''n''' divizori. | ||
== Date de intrare == | == Date de intrare == | ||
Programul citește de la tastatură numărul natural '''n'''. | Programul citește de la tastatură numărul natural '''n'''. |
Latest revision as of 12:24, 9 May 2023
Cerinţa[edit | edit source]
Șirul numerelor triunghiulare e obținut prin adunarea numerelor naturale. Deci al șaptelea număr triunghiular e 1 + 2 + 3 + 4 + 5 + 6 + 7 = 28. Primii 10 termeni din șir sunt: 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ... Să listăm toți divizorii primelor 7 numere triunghiulare:
1: 1 3: 1,3 6: 1,2,3,6 10: 1,2,5,10 15: 1,3,5,15 21: 1,3,7,21 28: 1,2,4,7,14,28
Se poate observa că 28 e primul număr triunghiular care are mai mult de 5 divizori. Se dă un număr natural n. Să se scrie un program care determină primul număr triunghiular cu mai mult de n divizori.
Date de intrare[edit | edit source]
Programul citește de la tastatură numărul natural n.
Date de ieşire[edit | edit source]
Programul afișează pe ecran numărul x, reprezentând primul număr triunghiular care are mai mult de n divizori.
Restricții și precizări[edit | edit source]
- 1 ≤ n ≤ 1000
Exemplu[edit | edit source]
- Intrare
- 3
- Ieșire
- 6
Explicație[edit | edit source]
Primul număr trunghiular care are mai mult de 3 divizori este 6.
Exemplu 2[edit | edit source]
- Intrare
- 1
- Ieșire
- 3
Explicație[edit | edit source]
Primul număr trunghiular care are mai mult de un divizor este 3.
Exemplu 3[edit | edit source]
- Intrare
- 133
- Ieșire
- 437580
Explicație[edit | edit source]
Primul număr trunghiular care are mai mult de 133 de divizori este 437580.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line> def numar_divizori(n):
numar = 0 for i in range(1, int(n**0.5)+1): if n % i == 0: if n/i == i: numar += 1 else: numar += 2 return numar
def validare_date(n):
if n.isdigit() and 1 <= int(n) <= 1000: print("\nDatele de intrare corespund restricțiilor impuse.\n") return True else: print("Datele de intrare nu corespund restricțiilor impuse.") return False
if __name__ == '__main__':
n = input("Introduceti n: ")
if validare_date(n): numar = 1 index = 2
while numar_divizori(numar) <= int(n): numar += index index += 1
print("Primul număr triunghiular cu mai mult de", n, "divizori este:", numar)
</syntaxhighlight>
Explicație rezolvare[edit | edit source]
Acest program găsește primul număr triunghiular care are mai mult de n divizori. Folosind o buclă while, programul calculează numerele triunghiulare și numără divizorii acestora până când se găsește primul număr triunghiular care are mai mult de n divizori. Pentru a se asigura că datele de intrare sunt valide, programul include o funcție care verifică dacă n se află în intervalul specificat.