срочно помогите пожалуйста!!!! Последовательность Хэмминга образуют натуральные числа, не...

+853 голосов
6.6m просмотров

срочно помогите пожалуйста!!!! Последовательность Хэмминга образуют натуральные числа, не имеющие других простых делителей, кроме 2, 3 и 5. Найти сумму первых N элементов этой последовательности. C++ (+текстовое решение)


Информатика | 6.6m просмотров
Дан 1 ответ
+160 голосов

например, это можно сделать так:

UPD: изменено

#include

#include

#include

using namespace std;

bool prime(int n){

   for(int i = 2; i * i <= n; i++)</strong>

       if(n % i == 0)

           return false;

   return true;    

}

signed main() {

   int n;

   cin >> n;

   set 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++)</strong>

           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;</strong>

}

(151k баллов)
+120

можешь написать комментарии к каждой строчке программы, пожалуйста