Минимальное возможное количество единиц в столбце значений предложенной функции равно 28.
Пять переменных порождают таблицу истинности, содержащую
![2^5=32](https://tex.z-dn.net/?f=2%5E5%3D32)
строки значений. По условию для каждого из логических выражений a и b получается 4 единицы, следовательно нулей получается 32-4=28.
Функция
![a+\bar b](https://tex.z-dn.net/?f=a%2B%5Cbar+b)
- это дизъюнкция значений a, порождающих 4 единицы и инверсии значений b, порождающей 28 единиц. Т.е. меньше 28 единиц быть не может никак.
Задачу проще всего решить, уже имея набор этих чисел, а их не так много и их можно найти в интернете)
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector <long long int> armstrong = {1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407, 1634, 8208, 9474, 54748, 92727, 93084, 548834, 1741725, 4210818, 9800817, 9926315, 24678050, 24678051, 88593477, 146511208, 472335975, 534494836, 912985153, 4679307774};
long long int n;
int l = armstrong.size();
cin >> n;
for (int i = 0; i < l && armstrong[i] <= n; ++i)
cout << armstrong[i] << '\n';
return 0;
}
В основе алгоритма лежит последовательное деление числа на 8 и анализ остатка от этого деления. Фактически, происходит получение цифр числа в восьмеричной системе счисления. Если очередная цифра нечетная, значение a увеличивается на нее, а если четная - значение b умножается на нее. В результате a - сумма нечетных цифр числа в его восьмеричном представлении, b - произведение четных цифр.
a=2 и есть только один способ получения такой суммы нечетных цифр: 1+1
b=12и есть только один способ получения такого произведения четных цифр: 2×6.
Теперь мы знаем все цифры восьмеричного числа: 1, 1, 2, 6.
Максимальное восьмеричное число, составленное из них - это 6211.
6211₈ = 6×8³+2×8²+1×8+1 = 3072+128+8+1 = 3209₁₀
Ответ: 3209
10 переведи в 4чную систему счисления, сосчитай кол-во разрядов и вот ответ, но т.к. ты ленивый, то 10 это 22, 2 разряда, значит нажимать нужно 2 клавиши, если нажимать 2 клавиши, то можно 15 разных символов ввести
Program otvet0x40;
var x,i:integer;
begin
for i:=0 to 40 do begin
x:=sqr(i)+i+41;
write(' x(',i,')=',x);
end;
<span>end. </span>