1740 - Suma B Numere

De la Universitas MediaWiki
Versiunea pentru tipărire nu mai este suportată și poate avea erori de randare. Vă rugăm să vă actualizați bookmarkurile browserului și să folosiți funcția implicită de tipărire a browserului.

Cerință

Se dau 2 numere naturale, a și b. Să se determine dacă a se poate scrie că suma de b numere naturale consecutive.

Date de intrare

Se dau 2 numere naturale, a și b. Să se determine dacă a se poate scrie că suma de b numere naturale consecutive.

Date de ieșire

Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restricțiilor impuse." și programul va afișa pe ecran numărul mesajul DA dacă a se poate scrie că suma de b numere naturale, iar NU în caz contrar. În caz contrar, se va afișa pe ecran: "Datele de intrare nu corespund restricțiilor impuse."

Restricții de precizări

  • 1 ⩽ a ⩽ 1000000
  • 1 ⩽ b ⩽ 25000

Exemplul 1

Intrare
12
3
Ieșire
Datele introduse corespund restricțiilor impuse.
DA

Exemplul 2

Intrare
30
6
Ieșire
Datele introduse corespund restricțiilor impuse.
NU

Rezolvare

Rezolvare ver. 1

def validare_date(a, b):
    return a.isdigit() and 1 < int(a) < 1_000_000 and b.isdigit() and 1 < int(b) < 25_000

#verificăm dacă există o sumă consecutivă de b , astfel încât suma numerelor să fie egală cu a
def verifica_suma_consecutiva(a, b): 

    if (a - (b * (b - 1) / 2)) % b == 0:
        print("DA") #dacă condiția este îndeplinită afișăm DA, altfel NU
    else:
        print("Nu")


if __name__ == '__main__':
    a = input("Introduceti numarul a: ") #citim numerele de la tastaură
    b = input("Introduceti numarul b: ")

    if validare_date(a, b):
        a, b = int(a), int(b)

        print("Datele de intrare corespund restricțiilor impuse.")
        verifica_suma_consecutiva(a, b)
    else:
        print("Datele de intrare nu corespund restricțiilor impuse.")