# Help me in solving DIVIDING problem

### My issue

Why cannot we use sum of first n natural number formula here

### My code

``````#include <stdio.h>

int main(void) {
// your code goes here
int n;
int count=0,sum=0;
scanf("%d",&n);
int arr[n];
for(int i=0;i<n;i++){
scanf("%d",&arr[i]);
count+=arr[i];
sum=sum+(i+1);
}

if(sum==count)
printf("YES\n");
else
printf("NO\n");

return 0;
}

``````

Problem Link: DIVIDING Problem - CodeChef

We can use sum of first n natural number formula here.

Code :-

``````#include<bits/stdc++.h>
using namespace std;
#define int long long

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

int sum = 0;
for(int i=0; i<n; i++){
int temp;
cin >> temp;
sum += temp;
}

if(sum == n*(n+1)/2.0){
cout << "YES" << endl;
} else {
cout << "NO" << endl;
}
return 0;
} `````````

The code you’ve provided appears to be checking whether the sum of the elements in an array `arr` is equal to the sum of the first `n` natural numbers, where `n` is the length of the array. While you can use the formula for the sum of the first `n` natural numbers to optimize this code, you should note that the code as written also counts the index values (1, 2, 3, …) in the `sum` variable. If you want to compare only the sum of the array elements to the sum of natural numbers, you can simplify the code.