Другие языки программирования и технологии

Циклы с++, нужна помощь

мне дано число натуральное n, мне надо перебрать все числа до н включительно, выделить из них простые, перевести все простые в двоичную систему исчисления, найти максимум единиц в определенном числе, и ответом должен быть вывод этого числа в десятичной системе
понимаю как сделать все эти манипуляции с одним конкретным числом, а как все это в циклах сделать с оп-ленным кол-вом чисел не понимаю. нужна помощь! какая-нибудь схема структуры с пояснением или код целиком, если найдутся добрячки )\
(пример на СИ)
i = 1;
while ( i < n)
{
     тут работа с конкретным числом i;
     ...
     i++;
}

для переводов в другие СС нагуглил что то вроде этого http://www.cplusplus.com/reference/ios/hex/
или самому написать
Руслан Галимов
Руслан Галимов
73 465
Лучший ответ
Александр Алексеевич мне каждое действие понятно, но как это структурировать, как хранить кол-во единиц в каждом числе и как вычислить максимум, не могу всё это собрать в одно и разобраться
#include <iostream>
using namespace std;
using ullong = unsigned long long;
bool is_prime(ullong num) {
const static auto zero = 0ULL, one = 1ULL, two = 2ULL, three = 3ULL, five = 5ULL;
bool prime;
if (num <= five && (num <= two || num == three || num == five)) {
prime = true;
} else if (~num & one || zero == num % three || zero == num % five) {
prime = false;
} else {
unsigned n;
for (n = three; n * n <= num && num % n; n += two) { ; }
prime = n * n > num? true : false;
}
return prime;
}
unsigned count_units(ullong num) {
auto n = 0U;
while (num) {
n += num & 1? 1 : 0;
num >>= 1;
}
return n;
}
ullong pumd(ullong n) {
auto um = 0U;
auto num = 0ULL;
for (auto i = n; static_cast<ullong>(pow(2, um + 1)) < i; --i) {
if (is_prime(i)) {
auto tmp = count_units(i);
if (tmp > um) {
um = tmp;
num = i;
}
}
}
return num;
}
int main() {
cout << "n: ";
ullong n;
cin >> n;
auto x = pumd(n);
cout << "x: " << x << '\n';
system("pause");
}
Александр Алексеевич страшилка какая-то...