1892 - S Norocos: Difference between revisions

From Bitnami MediaWiki
Dragos1234 (talk | contribs)
No edit summary
Dragos1234 (talk | contribs)
Line 27: Line 27:
== Rezolvare ==  
== Rezolvare ==  
<syntaxhighlight lang="python" line>
<syntaxhighlight lang="python" line>
#4273
#1892
def patrate_perfecte(n):
def validate_n(n):
     patrate = []
     if isinstance(n, int) and 1 <= n <= 1000:
    i = 1
         return True
    while len(patrate) < n:
     else:
        patrat = i * i
        patrate.append(patrat)
        i += 1
    return patrate
 
 
def calculeaza(numbers):
    product = 1
    for number in numbers:
         product *= number
    return product
 
 
def validare_numar(n):
     if n < 1 or n > 10:
         return False
         return False
    return True




if __name__ == '__main__':
def main():
     n = int(input("Introduceți numărul n: "))
     n = int(input("n: "))
     if not validare_numar(n):
     if not validate_n(n):
         print("Datele introduse nu corespund cerintelor.")
         print("Numărul introdus trebuie să fie între 1 și 1000.")
        return
    if n % 2 == 1:
        k = (n+1)//2
        while n > 0:
            print(k, end=' ')
            k += 1
            n -= 1
     else:
     else:
        squares = patrate_perfecte(n)
         print("NU ESTE NOROCOS")
        product = calculeaza(squares)
 
         print("Datele introduse corespund cerintelor.")
        print(product)


main()


</syntaxhighlight>
</syntaxhighlight>

Revision as of 11:40, 1 April 2023

Sursa: [1]

Cerinţa

Se dă un număr natural n. Dacă numărul este norocos afișați cele n numere consecutive care adunate dau pătratul acestuia.

Date de intrare

Programul citește de la tastatură numărul n.

Date de ieșire

Daca n este norocos, programul va afișa pe ecran cele n numere consecutive care adunate dau n * n, separate prin spații. In caz contrar, programul va afișa mesajul NU ESTE NOROCOS.

Restricţii şi precizări

  • 1 ⩽ n ⩽ 1000

Exemplul 1

Intrare
7
Ieșire
4 5 6 7 8 9 10


Exemplul 2

Intrare
8
Ieșire
NU ESTE NOROCOS


Rezolvare

<syntaxhighlight lang="python" line>

  1. 1892

def validate_n(n):

   if isinstance(n, int) and 1 <= n <= 1000:
       return True
   else:
       return False


def main():

   n = int(input("n: "))
   if not validate_n(n):
       print("Numărul introdus trebuie să fie între 1 și 1000.")
       return
   if n % 2 == 1:
       k = (n+1)//2
       while n > 0:
           print(k, end=' ')
           k += 1
           n -= 1
   else:
       print("NU ESTE NOROCOS")


main()

</syntaxhighlight>

Explicatie rezolvare

Acest program primește un număr întreg n de la utilizator și verifică dacă numărul se încadrează între 1 și 1000. Dacă n este un număr impar, programul va imprima primele n numere naturale impare consecutive începând cu (n+1)//2. În caz contrar, programul va afișa "NU ESTE NOROCOS". Funcția validate_n este folosită pentru a verifica dacă n-ul introdus este un număr întreg între 1 și 1000.