Найдите, является ли данное число суммой первых n натуральных чисел
Опубликовано: 18 Января, 2022
Дано число s (1 <= s <= 1000000000). Если это число является суммой первых n натуральных чисел, то выведите, иначе выведите -1.
Примеры:
Ввод: s = 10 Выход: n = 4 Объяснение: 1 + 2 + 3 + 4 = 10 Ввод: s = 17 Выход: n = -1 Объяснение: 17 не может быть выражено как сумма последовательных от 1.
Метод 1 (простой):
Начните складывать числа от i = 1 до n.
- Проверяем, равна ли сумма n, возвращаем i.
- В противном случае, если сумма> n, верните -1.
Below is the implementation of the above approach:
C++
// C++ program for above implementation #include <iostream> using namespace std; // Function to find no. of elements // to be added from 1 to get n int findS( int s) { int sum = 0; // Start adding numbers from 1 for ( int n = 1; sum < s; n++) { sum += n; // If sum becomes equal to s // return n if (sum == s) return n; } return -1; } // Drivers code int main() { int s = 15; int n = findS(s); n == -1 ? cout << "-1" : cout << n; return 0; } |
Java
// Java program for above implementation class GFG { // Function to find no. of elements // to be added from 1 to get n static int findS( int s) { int sum = 0 ; // Start adding numbers from 1 for ( int n = 1 ; sum < s; n++) { sum += n; // If sum becomes equal to s // return n if (sum == s) return n; } return - 1 ; } // Drivers code public static void main(String[]args) { int s = 15 ; int n = findS(s); if (n == - 1 ) System.out.println( "-1" ); else System.out.println(n); } } //This code is contributed by Azkia Anam. |
Python3
# Python3 program to check if # given number is sum of first n # natural numbers # Function to find no. of elements # to be added from 1 to get n def findS (s): _sum = 0 n = 1 # Start adding numbers from 1 while (_sum < s): _sum + = n n + = 1 n - = 1 # If sum becomes equal to s # return n if _sum = = s: return n return - 1 # Driver code s = 15 n = findS (s) if n = = - 1 : print ( "-1" ) else : print (n) # This code is contributed by "Abhishek Sharma 44". |
C#
// C# program for above implementation using System; class GFG { // Function to find no. of elements // to be added from 1 to get n static int findS( int s) { int sum = 0; // Start adding numbers from 1 for ( int n = 1; sum < s; n++) { sum += n; // If sum becomes equal to s // return n if (sum == s) return n; } return -1; } // Drivers code public static void Main() { int s = 15; int n = findS(s); if (n == -1) Console.WriteLine( "-1" ); else Console.WriteLine(n); } } // This code is contributed by vt_m. |
PHP
<?php // PHP program for above implementation // Function to find no. of elements // to be added from 1 to get n function findS( $s ) { $sum = 0; // Start adding numbers from 1 for ( $n = 1; $sum < $s ; $n ++) { $sum += $n ; // If sum becomes equal // to s return n if ( $sum == $s ) return $n ; } return -1; } // Drivers code $s = 15; $n = findS( $s ); if ( $n == -1) echo "-1" ; else echo $n ; // This code is contributed by Sam007 ?> |
Javascript
<script> // Javascript program for above implementation // Function to find no. of elements // to be added from 1 to get n function findS(s) { var sum = 0; // Start adding numbers from 1 for (n = 1; sum < s; n++) { sum += n; // If sum becomes equal to s // return n if (sum == s) return n; } return -1; } // Drivers code var s = 15; var n = findS(s); if (n == -1) document.write( "-1" ); else document.write(n); // This code is contributed by Rajput-Ji </script> |
Output
5