Dado un número N. La tarea es encontrar la suma de todos aquellos números del 1 al N que son divisibles por 2 o por 7.
Ejemplos :
Input : N = 7 Output : 19 sum = 2 + 4 + 6 + 7 Input : N = 14 Output : 63 sum = 2 + 4 + 6 + 7 + 8 + 10 + 12 + 14
Enfoque : para resolver el problema, siga los pasos a continuación:
->Encuentre la suma de los números que son divisibles por 2 hasta N. Denótelo con S1.
->Encuentra la suma de los números que son divisibles por 7 hasta N. Denota por S2.
->Encuentra la suma de los números que son divisibles por 14(2*7) hasta N. Denota por S3.
->La respuesta final será S1 + S2 – S3.
Para encontrar la suma, podemos usar la fórmula general de AP que es:
Sn = (n/2) * {2*a + (n-1)*d}
Para S1: Los números totales que serán divisibles por 2 hasta N serán N/2 y la serie será 2, 4, 6, 8,….
Hence, S1 = ((N/2)/2) * (2 * 2 + (N/2 - 1) * 2)
Para S2: Los números totales que serán divisibles por 7 hasta N serán N/7 y la serie será 7, 14, 21, 28, ……
Hence, S2 = ((N/7)/2) * (2 * 7 + (N/7 - 1) * 7)
Para S3: Los números totales que serán divisibles por 14 hasta N serán N/14.
Hence, S3 = ((N/14)/2) * (2 * 14 + (N/14 - 1) * 14)
Por tanto, el resultado será:
S = S1 + S2 - S3
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program to find sum of numbers from 1 to N // which are divisible by 2 or 7 #include <bits/stdc++.h> using namespace std; // Function to calculate the sum // of numbers divisible by 2 or 7 int sum(int N) { int S1, S2, S3; S1 = ((N / 2)) * (2 * 2 + (N / 2 - 1) * 2) / 2; S2 = ((N / 7)) * (2 * 7 + (N / 7 - 1) * 7) / 2; S3 = ((N / 14)) * (2 * 14 + (N / 14 - 1) * 14) / 2; return S1 + S2 - S3; } // Driver code int main() { int N = 20; cout << sum(N); return 0; }
Java
// Java program to find sum of // numbers from 1 to N which // are divisible by 2 or 7 import java.io.*; class GFG { // Function to calculate the sum // of numbers divisible by 2 or 7 public static int sum(int N) { int S1, S2, S3; S1 = ((N / 2)) * (2 * 2 + (N / 2 - 1) * 2) / 2; S2 = ((N / 7)) * (2 * 7 + (N / 7 - 1) * 7) / 2; S3 = ((N / 14)) * (2 * 14 + (N / 14 - 1) * 14) / 2; return S1 + S2 - S3; } // Driver code public static void main (String[] args) { int N = 20; System.out.println( sum(N)); } } // This code is contributed by ajit
Python3
# Python3 implementation of # above approach # Function to calculate the sum # of numbers divisible by 2 or 7 def sum(N): S1 = ((N // 2)) * (2 * 2 + (N // 2 - 1) * 2) // 2 S2 = ((N // 7)) * (2 * 7 + (N // 7 - 1) * 7) // 2 S3 = ((N // 14)) * (2 * 14 + (N // 14 - 1) * 14) // 2 return S1 + S2 - S3 # Driver code if __name__=='__main__': N = 20 print(sum(N)) # This code is written by # Sanjit_Prasad
C#
// C# program to find sum of // numbers from 1 to N which // are divisible by 2 or 7 using System; class GFG { // Function to calculate the sum // of numbers divisible by 2 or 7 public static int sum(int N) { int S1, S2, S3; S1 = ((N / 2)) * (2 * 2 + (N / 2 - 1) * 2) / 2; S2 = ((N / 7)) * (2 * 7 + (N / 7 - 1) * 7) / 2; S3 = ((N / 14)) * (2 * 14 + (N / 14 - 1) * 14) / 2; return S1 + S2 - S3; } // Driver code public static int Main() { int N = 20; Console.WriteLine( sum(N)); return 0; } } // This code is contributed // by SoumikMondal
PHP
<?php // PHP program to find sum of numbers // from 1 to N which are divisible by 2 or 7 // Function to calculate the sum // of numbers divisible by 2 or 7 function sum($N) { $S1 = (int)(($N / 2)) * (int)(2 * 2 + (int)($N / 2 - 1) * 2) / 2; $S2 = (int)(($N / 7)) * (int)(2 * 7 + (int)($N / 7 - 1) * 7) / 2; $S3 = (int)(($N / 14)) * (int)(2 * 14 + (int)($N / 14 - 1) * 14) / 2; return ($S1 + $S2) - $S3; } // Driver code $N = 20; echo sum($N); // This Code is Contributed by akt_mit ?>
Javascript
<script> // javascript program to find sum of // numbers from 1 to N which // are divisible by 2 or 7 // Function to calculate the sum // of numbers divisible by 2 or 7 function sum(N) { var S1, S2, S3; S1 = (((N / 2)) * parseInt(2 * 2 + parseInt(N / 2 - 1) * 2) / 2); S2 = (parseInt(parseInt(N / 7)) * (2 * 7 + parseInt(N / 7 - 1) * 7) / 2); S3 = (parseInt(parseInt(N / 14)) * (2 * 14 + parseInt(N / 14 - 1) * 14) / 2); return S1 + S2 - S3; } // Driver code var N = 20; document.write( sum(N)); // This code is contributed by shikhasingrajput </script>
117
Complejidad de tiempo: O(1)
Espacio Auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por Shashank_Sharma y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA