Питон я не знаю, но егэ сдавал на C, поэтому если нужен кому мой вариант, приведу ниже: (Писал по памяти и без компилятора, могут быть незначительные ошибки в синтаксисе) #include int conc(int n, int k) { char n_bin[32] = "", k_bin[32] = ""; sprintf(n_bin, "%b", n); sprintf(k_bin, "%b", k); char s[32] = ""; if (strlen(n_bin) != strlen(k_bin)) { if (strlen(n_bin) > strlen(k_bin)) { int zeroes = strlen(n_bin) - strlen(k_bin); char zeroes_str[32] = ""; for (int i = 0; i < zeroes; i++) zeroes_str[i] = '0'; strcat(zeroes_str, k_bin); strcpy(k_bin, zeroes_str); } else { int zeroes = strlen(k_bin) - strlen(n_bin); char zeroes_str[32] = ""; for (int i = 0; i < zeroes; i++) zeroes_str[i] = '0'; strcat(zeroes_str, n_bin); strcpy(n_bin, zeroes_str); } } for (int i = 0; i < strlen(n_bin); i++) { if (n_bin[i] == k_bin[i]) strncat(s, "1", 1); else strncat(s, "0", 1); } return strtol(s, NULL, 2); } int impl(int x, int y) { return !x || y; } int F(int A) { for (int x = 0; x < 10000; x++) { if (!(impl(conc(x, 29) != 0, impl(conc(x, 17) == 0,conc(x, A) != 0)))) { return 0; } } return A; } int main() { for (int i = 0; i < 100; i++) { if (F(i) != 0) printf("%d ", i); } return 0; }
Питон я не знаю, но егэ сдавал на C, поэтому если нужен кому мой вариант, приведу ниже:
(Писал по памяти и без компилятора, могут быть незначительные ошибки в синтаксисе)
#include
int conc(int n, int k) {
char n_bin[32] = "", k_bin[32] = "";
sprintf(n_bin, "%b", n);
sprintf(k_bin, "%b", k);
char s[32] = "";
if (strlen(n_bin) != strlen(k_bin)) {
if (strlen(n_bin) > strlen(k_bin)) {
int zeroes = strlen(n_bin) - strlen(k_bin);
char zeroes_str[32] = "";
for (int i = 0; i < zeroes; i++) zeroes_str[i] = '0';
strcat(zeroes_str, k_bin);
strcpy(k_bin, zeroes_str);
} else {
int zeroes = strlen(k_bin) - strlen(n_bin);
char zeroes_str[32] = "";
for (int i = 0; i < zeroes; i++) zeroes_str[i] = '0';
strcat(zeroes_str, n_bin);
strcpy(n_bin, zeroes_str);
}
}
for (int i = 0; i < strlen(n_bin); i++) {
if (n_bin[i] == k_bin[i]) strncat(s, "1", 1);
else strncat(s, "0", 1);
}
return strtol(s, NULL, 2);
}
int impl(int x, int y) {
return !x || y;
}
int F(int A) {
for (int x = 0; x < 10000; x++) {
if (!(impl(conc(x, 29) != 0, impl(conc(x, 17) == 0,conc(x, A) != 0)))) {
return 0;
}
}
return A;
}
int main() {
for (int i = 0; i < 100; i++) {
if (F(i) != 0) printf("%d
", i);
}
return 0;
}