👤

C++

Se spune despre numărul natural nenul n că este norocos dacă numărul n2 se poate scrie ca suma a n numere naturale nenule consecutive. De exemplu, 7 este norocos, deoarece 72=4+5+6+7+8+9+10.

Cerința
Scrieţi în limbajul C/C++ definiţia completă a funcţiei norocoase, care primeşte ca argumente două numere naturale a şi b şi returnează câte numere norocoase se află în intervalul [a, b].

Restricții și precizări
1 ≤ a < b ≤ 10 9
numele funcţiei este norocoase
parametrii sunt, în această ordine: a, b
Exemplu:
norocoase(1, 15) = 8

Notă
Puteţi defini şi alte subprograme care vă ajută să rezolvaţi mai uşor problema.


Răspuns :

Aici avem 7^2 = 49 = 4+5+6+7+8+9+10. Se intelege din enunt ca 72 = 4+5+6+7+8+9+10 ceea ce n-at fi corect. Este vorba de problema numere_norocoase. Succes!

int norocoase(int a, int b)
{
    if(a % 2 == 1 || b % 2 == 1) return ((b - a) / 2) + 1;
    if(a % 2 == 0 && b % 2 == 0) return (b - a) / 2;
}