2020-06-05 19:20:25 +03:00
|
|
|
/**
|
|
|
|
* \file
|
|
|
|
* \brief [Problem 1](https://projecteuler.net/problem=1) solution
|
|
|
|
*
|
|
|
|
* If we list all the natural numbers below 10 that are multiples of 3 or 5,
|
|
|
|
* we get 3,5,6 and 9. The sum of these multiples is 23.
|
|
|
|
* Find the sum of all the multiples of 3 or 5 below N.
|
|
|
|
*
|
|
|
|
* This solution is based on the pattern that the successive numbers in the
|
|
|
|
* series follow: 0+3,+2,+1,+3,+1,+2,+3.
|
|
|
|
*/
|
2017-11-27 11:00:21 +03:00
|
|
|
#include <stdio.h>
|
|
|
|
|
2020-06-05 19:20:25 +03:00
|
|
|
/** Main function */
|
2020-05-29 23:23:24 +03:00
|
|
|
int main()
|
|
|
|
{
|
|
|
|
int n = 0;
|
|
|
|
int sum = 0;
|
|
|
|
scanf("%d", &n);
|
2017-11-27 11:00:21 +03:00
|
|
|
|
2020-05-29 23:23:24 +03:00
|
|
|
int terms = (n - 1) / 3;
|
2020-06-28 18:25:37 +03:00
|
|
|
sum += ((terms) * (6 + (terms - 1) * 3)) / 2; // sum of an A.P.
|
2020-05-29 23:23:24 +03:00
|
|
|
terms = (n - 1) / 5;
|
|
|
|
sum += ((terms) * (10 + (terms - 1) * 5)) / 2;
|
|
|
|
terms = (n - 1) / 15;
|
|
|
|
sum -= ((terms) * (30 + (terms - 1) * 15)) / 2;
|
2017-11-27 11:00:21 +03:00
|
|
|
|
2020-05-29 23:23:24 +03:00
|
|
|
printf("%d\n", sum);
|
2017-11-27 11:00:21 +03:00
|
|
|
}
|