"Найти количество всех простых чисел в диапазоне от 2 до 100 000", - решение через Решето Эратосфена. #include <iostream> #include <vector> using namespace std;
int main() { unsigned a = 0, b = 0; cin >> a >> b; vector<char> v(b + 1, '1'); for (unsigned i = 3; i < v.size(); i += 2) { for (unsigned j = i + i; j < v.size(); j += i) { vec[j] = '0'; } }
if (a == 2) { cout << 2 << " "; }
a += !(a&1);
for (unsigned i = a; i < v.size(); i+=2){ if (vec[i] == '1') { cout << i << " "; } } return 0; }
Формула для определения информационного объема сообщения:
(1) V=K*i, где K - количество символов в сообщении, V - информационный объем(в битах), i - вес одного символа(в битах).
Формула Хартли для определение мощности алфавита(кол-во символов в алфавите):
(2)
, где N - количество символов в алфавите(мощность алфавита), i - информационный вес одного символа(в битах).
Применяем эти формулы для данной задачи:
Переведем объем в биты:
V=4 кбайт=4*1024 байт=4*1024*8 бит
Количество символов в сообщении:
K=4096
Применим формулу 1 для нахождения i:
i=8 бит - это информационный вес одного символа в данном сообщении.
Применим формулу 2 и найдем N - кол-во символов в алфавите:
1) i=8 бит
2) N=256 символов