﻿/*

1. https://www.pbinfo.ro/probleme/55/minimpozitive
   (Beolvasunk a 0 megjelenéséig. Szám. ki a pozitív elemek minimumát!)

2. https://www.pbinfo.ro/probleme/3976/prodimpare
   (Számítsuk ki az első n darab páratlan szám szorzatát!)

3. https://www.pbinfo.ro/probleme/335/expresie3
   (Számítsuk ki a megadott alakú összeget!)

4. https://www.pbinfo.ro/probleme/338/expresie5
   (Számítsuk ki a megadott alakú összeget!)

(+pont) Adott egy n természetes szám. Írjuk ki az n-nél kisebb 
Fibonacci-számokat csökkenő sorrendben!

(+pont) https://www.pbinfo.ro/probleme/257/fibosum
        (Írjunk fel n-t a lehető legkevesebb Fibonacci szám összegeként!)
    Segítség: minden lépésben vonjuk ki belőle a legnagyobb Fibonacci számot,
              ami <= nála.
    10-esért: igazoljuk, hogy a megválasztott stratégia helyes: bármely számot
              fel tud írni ilyen összegként és a tagok száma minimális!

Nehezebbek:
   1. https://www.pbinfo.ro/probleme/4226/divizibil
   2. https://www.pbinfo.ro/probleme/3643/regula
   3. https://infoarena.ro/problema/ssm
*/

/*
// Az 1. megoldása:
#include <iostream>
#include <climits>
using namespace std;

int main()
{
    int minimum = INT_MAX;

    int szam;
    cin >> szam;

    while (szam != 0) {

        if (szam > 0 && szam < minimum)
            minimum = szam;

        cin >> szam;
    }

    if (minimum == INT_MAX)
        cout << "NU EXISTA" << endl;
    else
        cout << minimum << endl;

    return 0;
}
*/

/*
// HF. 2.
#include <iostream>
using namespace std;

int main()
{
    int n;
    cin >> n;

    long long szorzat = 1;

    for (int i = 1; i <= n; i++) {
        szorzat = szorzat * (2*i-1);
    }

    cout << szorzat << endl;
    return 0;
}
*/

/*
// 3.
// S=1*2-2*3+3*4-4*5+5*6-6*7+...±n*(n+1).
#include <iostream>
using namespace std;

int main()
{
    int n;
    cin >> n;

    long long osszeg = 0;

    // for (int i = 1; i <= n; i++) {
    //     if (i%2 == 0)
    //         osszeg = osszeg - i*(i+1);
    //     else
    //         osszeg = osszeg + i*(i+1);
    // }

    // másképp:
    int elojel = 1;

    for (int i = 1; i <= n; i++) {
        osszeg = osszeg + elojel * i*(i+1);
        elojel = elojel * -1;
    }

    cout << "Rezultatul este " << osszeg << endl;
    return 0;
}
*/

//HF. 4.

#include <iostream>
using namespace std;

int main()
{
    int n;
    cin >> n;

    long long osszeg = 0;

    for (int i = 1; i <= n; i++) {
        // i az i-ediken kell legyen
        long long hatvany = i;

        for (int j = 1; j <= i-1; j++) {
            hatvany = hatvany * i;
        }

        osszeg = osszeg + hatvany;
    }

    cout << "Rezultatul este " << osszeg << endl;
    return 0;
}
