UVA Problem 10254 ( The Priest Mathematician) Solution

Problem Solving, UVa

 

 

#include <bits/stdc++.h>



using namespace std;



int main()



{

    int s,n;

    int first_term,last_term;

   

    while (scanf("%d", &s), s != -1)

    {

        int n_sum =(int)sqrt(2*s);

       

        for (n = n_sum ; n > 0; n--)

       

         {

            if ( (2 * s + n - n * n) % (2 * n) == 0 )

           

            {

           

             first_term =  (2 * s + n - n * n) / (2 * n);

              last_term  =  first_term + n - 1;

           

            break;



            }

        }

        printf("%d = %d + ... + %d\n", s, first_term, last_term);

//    return 0*    printf("%d = %d + ... + %d\n", s, a, last_term);

    }



    return 0;

}

 

0 Comments

You may find interest following article