Little Ashish's Huge Donation

  • + 0 comments

    The formula for calculation sum of squares of first natural number is:

    (n * (n+1) * (2*n + 1))/6

    So the thought process is start giving numbers to this formula from 1 and increment is by 1 till it's return values is less or equal to given "x" by testcases

    Note: This solution is a brute force approach as well as it pass all the test cases

    Solution:

    #include <math.h>
    #define ll unsigned long long
    
    ll sum_of_squares(ll n){
        return (n*(n+1)*(2*n+1))/6;
    }
    
    void successful_donations(ll x){
        int counter=1;
    
        while (sum_of_squares(counter) <= x){
            counter++;
        }
        printf("%d\n", counter-1);
    }
    
    int main(){
        int t;
        ll x;
        scanf("%d", &t);
        while (t--) {
            scanf("%lld", &x);
            successful_donations(x);
        }
    
        return 0;
    }