📜  N以下3和7的所有倍数的总和

📅  最后修改于: 2021-04-22 10:39:02             🧑  作者: Mango

给定数字N ,任务是找到N之下37的所有倍数的和。
注意:总和中不得重复数字。

例子:

方法:

  • 我们知道3的倍数形成AP,因为S 3 = 3 + 6 + 9 + 12 + 15 + 18 + 21 +…
  • 并且7的倍数形成AP,因为S 7 = 7 + 14 + 21 + 28 +…
  • 现在,总和= S 3 + S 73 + 6 + 7 + 9 + 12 + 14 + 15 + 18 + 21 + 21 +…
  • 从上一步开始,将21重复两次。实际上,所有21的倍数(或3 * 7)都将被重复,因为它们被计数了两次,一次在系列S 3中,一次在系列S 7中。因此,需要从结果中舍弃21的倍数。
  • 因此,最终结果将为S 3 + S 7 – S 21

下面是上述方法的实现:

C++
// C++ program to find the sum of all
// multiples of 3 and 7 below N
 
#include 
using namespace std;
 
// Function to find sum of AP series
long long sumAP(long long n, long long d)
{
    // Number of terms
    n /= d;
 
    return (n) * (1 + n) * d / 2;
}
 
// Function to find the sum of all
// multiples of 3 and 7 below N
long long sumMultiples(long long n)
{
    // Since, we need the sum of
    // multiples less than N
    n--;
 
    return sumAP(n, 3) + sumAP(n, 7) - sumAP(n, 21);
}
 
// Driver code
int main()
{
    long long n = 24;
 
    cout << sumMultiples(n);
 
    return 0;
}


Java
// Java program to find the sum of all
// multiples of 3 and 7 below N
import java.util.*;
 
class solution
{
 
// Function to find sum of AP series
static long sumAP(long n, long d)
{
    // Number of terms
    n /= d;
 
    return (n) * (1 + n) * d / 2;
}
 
// Function to find the sum of all
// multiples of 3 and 7 below N
static long sumMultiples(long n)
{
    // Since, we need the sum of
    // multiples less than N
    n--;
 
    return sumAP(n, 3) + sumAP(n, 7) - sumAP(n, 21);
}
 
// Driver code
public static void main(String args[])
{
    long n = 24;
 
    System.out.println(sumMultiples(n));
 
 }
}
 
//This code is contributed by Surendra_Gangwar


Python3
# Python3 program to find the sum of
# all multiples of 3 and 7 below N
 
# Function to find sum of AP series
def sumAP(n, d):
     
    # Number of terms
    n = int(n / d);
 
    return (n) * (1 + n) * (d / 2);
 
# Function to find the sum of all
# multiples of 3 and 7 below N
def sumMultiples(n):
 
    # Since, we need the sum of
    # multiples less than N
    n -= 1;
 
    return int(sumAP(n, 3) +
               sumAP(n, 7) -
               sumAP(n, 21));
 
# Driver code
n = 24;
 
print(sumMultiples(n));
 
# This code is contributed
# by mits


C#
// C# program to find the sum of all
// multiples of 3 and 7 below N
using System;
 
class GFG
{
 
// Function to find sum of AP series
static long sumAP(long n, long d)
{
    // Number of terms
    n /= d;
 
    return (n) * (1 + n) * d / 2;
}
 
// Function to find the sum of all
// multiples of 3 and 7 below N
static long sumMultiples(long n)
{
    // Since, we need the sum of
    // multiples less than N
    n--;
 
    return sumAP(n, 3) + sumAP(n, 7) -
                         sumAP(n, 21);
}
 
// Driver code
static public void Main(String []args)
{
    long n = 24;
 
    Console.WriteLine(sumMultiples(n));
}
}
 
// This code is contributed
// by Arnab Kundu


PHP


Javascript


输出:
105