Чтобы выражение было ложно нам нужно чтобы оба условия были ложными, то есть, количество букв должно быть нечетным и последняя буква должна быть согласной.
Пусть в семеричной сс число записывается в виде xxyy, тогда оно равно x * 7^3 + x * 7^2 + y * 7^1 + y * 7^0 = 49x * 8 + y * 8 = (49x + y) * 8 Это число должно быть полным квадратом и 1 <= x <= 6, 0 <= y <= 6.
Число - полный квадрат, делится на 8 -> делится на 16 -> 49x + y делится на 2 -> x и y одинаковой четности. 1) x = 2X, y = 2Y; 1 <= X <= 3, 0 <= Y <= 3. 49X + Y - полный квадрат. - X = 1: 49 + Y - п.к., Y = 0 - X = 2: 98 + Y - п.к., Y = 2 (не подходит, x и y совпадают) - X = 3: 147 + Y - п.к., Y > 3 2) x = 2X + 1, y = 2Y + 1; 0 <= X <= 2, 0 <= Y <= 2. 49X + Y + 25 - полный квадрат - X = 0: 25 + Y - п.к., Y = 0 (не подходит, x и y совпадают) - X = 1: 74 + Y - п.к., Y > 2 - X = 2: 123 + Y - п.к., Y > 2
В наихудшем случае, последнее новогоднее число - 11111111.
#include <iostream>
bool isNewYearNumber(int n); int sumDigits(int num); bool hasZero(int n);
int main() { const int LASTNEWYEARNUMBER = 11111111; long long sum = 0; for(int i = 0; i <= LASTNEWYEARNUMBER; i++) if ( isNewYearNumber(i) ) sum += i; std::cout << "Сумма всех новогодних чисел: " << sum << '\n'; return 0; }
Объяснение: чтобы высказывание было ложным, нам нужно взять условие наоборот, то есть нечетное количество букв ИЛИ последняя буква согласная
1) кабан
2) олень
3) кот
4) топор
5) робот
6) дождь
7) зуб
8) телефон