Чтобы построить функцию, которая возвращает 0 при делении `a` на `b` и 1 в противном случае, используя только арифметические операции, можно использовать следующий подход:
1. Деление `a` на `b` с помощью целочисленного деления, чтобы получить результат этого деления.
2. Умножим результат обратно на `b` — это даст нам число, которое будет равно `a`, если `a` делится на `b` без остатка.
3. Вычитаем это число из `a` — если `a` делится на `b` без остатка, то результат будет 0, иначе — ненулевой.
4. С использованием того факта, что любое ненулевое число в языках программирования интерпретируется как True, а 0 как False, мы можем преобразовать это в 1 или 0.
Представим реализацию на Python, с учетом того, что оператор `%` (остаток от деления) запрещен, а также другие средства, кроме арифметических операций:
```python
def is_divisible(a, b):
return 0 if a - (a // b) * b == 0 else 1
# Тест
a = 10
b = 2
print(is_divisible(a, b)) # Выведет 0, потому что 10 делится на 2
a = 10
b = 3
print(is_divisible(a, b)) # Выведет 1, потому что 10 не делится на 3 без остатка
```
В C++ это можно реализовать следующим образом:
```cpp
#include <iostream>
int is_divisible(int a, int b){
return a - (a / b) * b == 0 ? 0 : 1;
}
int main() {
int a = 10;
int b = 2;
std::cout << is_divisible(a, b) << std::endl; // Выведет 0
a = 10;
b = 3;
std::cout << is_divisible(a, b) << std::endl; // Выведет 1
return 0;
}
```
Важно помнить, что эти функции не обрабатывают специальный случай, когда `b` равно нулю; деление на ноль не определено, и вам нужно будет добавить соответствующую проверку на ноль, если это требуется по условиям задачи.