fbpx

Problema #352 – SumCons – Rezolvari PBInfo

de Mihai-Alexandru

Cerinţa

Se citește numărul natural nenul n. Determinați toate modalitățile de a-l scrie pe n ca sumă de cel puțin două numere naturale consecutive nenule.

Date de intrare

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

Date de ieşire

Programul afișează pe ecran descompunerile cerute, câte o descompunere pe o linie a ecranului, în ordine crescătoare a numărului de termeni din descompunere, termenii unei descompuneri fiind scriși în ordine crescătoare și separați prin exact un spațiu.

Restricţii şi precizări

  • 1 ≤ n ≤ 10.000.000
  • pentru fiecare test, numărul n se poate scrie ca sumă de cel puțin 2 numere naturale consecutive nenule în cel puțin un mod.

Exemplu

Date de intrare

30

Date de ieșire

9 10 11 
6 7 8 9 
4 5 6 7 8
#include <bits/stdc++.h>
using namespace std;

int main()
{
    long long int n,a;
    cin >> n;
    for(long long int i = 1 ; i <= n/2 ; i++)
    {
        a=(2*n-i-i*i)/(2*i+2);
        if(a>=1 && n==(i+1)*(2*a+i)/2)
        {
            for(long long int k=0 ; k <= i ; k++)
            {
                cout<<k+a<<" ";
            }
            cout<<endl;
        }
    }
    return 0;
}
Comentarii

S-ar putea sa iti placa