например, это можно сделать так:
UPD: изменено
#include <iostream>
#include <set>
#include <cmath>
using namespace std;
bool prime(int n){
for(int i = 2; i * i <= n; i++)
if(n % i == 0)
return false;
return true;
}
signed main() {
int n;
cin >> n;
set<int> ok;
ok.insert(2);
ok.insert(3);
ok.insert(5);
int sum = 0, cnt = 0,cur = 2;
while(cnt != n){
bool norm = true;
for(int i = 2; i * i <= cur; i++)
if(cur % i == 0 && ( ok.find(i) == ok.end() && prime(i)) || (cur % (n/i) == 0 && ok.find(n/i) == ok.end() && prime(n/i)))
norm = false;
if(norm){sum += cur; cnt++;}
cur++;
}
cout << sum;
}
#include <iostream> // iostream
int main() { // int main
int N; // N
int M; // M
int sum = 0; // сумма чисел хэмминга от n до m
std::cout << "N: "; // запрашиваем N
std::cin >> N;
std::cout << "M: "; // запрашиваем M
std::cin >> M;
int *hemming = new int[M - N + 1]; // массив с числами хемминга
int counter = 0; // размер массива
for (int i = N; i <= M; ++i) { // записываем числа в массим хемминга
if (i % 2 == 0 || i % 3 == 0 || i % 5 == 0) { // если остаток от деления
std::cout << i << " "; // на 2 или 3 или 5 равен нулю
hemming[counter] = i; // и выводим.
sum += hemming[counter]; // прибавляем к сумме числа
++counter; // увеличиваем счётчик
}
}
std::cout << std::endl << sum; // выводим сумму
}
2EA₁₆ = 2x16²+14x16¹+10x16⁰ = 512+224+10 = 746₁₀
101010₂ = 1x2⁵+0x2⁴+1x2³+0x2²+1x2¹+0x2⁰ = 32+8+2 = 42₁₀
10,1₂ = 1x2¹+0x2⁰+1x2⁻¹ = 2+1/2 = 2,5₁₀
243₆ = 2x6²+4x6¹+3x6⁰ = 72+24+3 = 99₁₀