Plataforma: URI
Problema: 1132
Enunciado:
Escreva um algoritmo que leia 2 valores inteiros X e Y calcule a soma dos números que não são múltiplos de 13 entre X e Y, incluindo ambos.
Linguagem: C++
Solução:
Neste exercício, para fazer a soma de todos os números foi utilizado a fórmula fechada da Progressão Aritmética.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| #include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int n1, n2, aux, soma_n13;
int n1_13, n2_13, soma_13;
cin >> n1 >> n2;
// verificar maior
if(n1>n2){
aux = n1;
n1 = n2;
n2 = aux;
}
n1--;
n1_13 = n1+13-n1%13; // encontrar primeiro multiplo de 13
n2_13 = n2-n2%13; // encontrar o ultimo multiplo de 13
// fazer a soma da Progressao aritmetica
int num_soma13 = (n2_13-n1_13)/13+1;
soma_13 = num_soma13*(n1_13+n2_13)/2;
n1++;
soma_n13 = (n2-n1+1)*(n1+n2)/2;
cout << soma_n13-soma_13 << endl;
return 0;
}
|