# PBinfo #1212 – sumapatrate – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: andrei

## Enunț

Cerința
Fiind dat N, un număr natural nenul, calculați suma  S=12 + 22 + 32 + ... + n2, modulo 10.234.573. 

Date de intrare
Programul citește de la tastatură numărul N.

Date de ieșire
Programul va afișa pe ecran numărul S, modulo 10.234.573.

Restricții și precizări

1 ≤ N ≤ 2.000.000.000

Exemplu:
Intrare

4
Ieșire

30
Explicație
 S=12 + 22 + 32 + 42

## Cod sursă C++

```cpp
#include <iostream>
using namespace std;
long long n, m, r, a, b, c, rez;
int main() {
    cin >> n;
    m = 10234573;
    r = n % 6;
    switch (r) {
        case 0: a = (n / 6) % m;
                b = (n + 1) % m;
                c = (2 * n + 1) % m;
                break;
        case 1: a = n % m;
                b = (( n + 1 ) / 2) % m;
                c = (( 2 * n + 1 ) / 3) % m;
                break;
        case 2: a = (n / 2) % m;
                b = ((n + 1 ) / 3) % m;
                c = (2 * n + 1) % m;
        		break;
        case 3: a = (n / 3) % m;
                b = (( n + 1) / 2) % m;
                c = (2 * n + 1) % m;
        		break;
        case 4: a = (n / 2) % m;
                b = (n + 1) % m;
                c = ((2 * n + 1) / 3) % m;
        		break;
        case 5: a =  n % m ;
                b = ((n + 1 ) / 6) % m;
                c = (2 * n + 1) % m;
                break;
    } rez = (a * b) % m;
    rez = (rez * c) % m;
    cout << rez;
    return 0;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/1212)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/1212/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-1212/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
