Программа не выводит данные (деление и деление с остатком не понимаю)

У меня есть программа, написанная для решения разных типов задач для своей конструкции. Здесь надо найти высокосный год =1 , невысокосный = 0. Чтобы найти должно делиться на 4, но если делится на 100 то должно делится и на 400.

Не понимаю что не так (желательно не менять данную конструкцию, а изменить ее)

    #include <iostream>
int main()
{
    long long y;
    std::cin >> y;
    if (y % 4 != 0) {
        if (y / 100) {
            if (y / 400) std::cout << '1';
            else std::cout << '0';
        }
        else if (y / 4) std::cout << '1';
        else std::cout << '0';
    }
    else std::cout << '0';
    }

Ответы (2 шт):

Автор решения: Паша
#include <iostream>
int main()
{
    long long y;
    std::cin >> y;
    if (y % 4 != 0 && (y % 100 != 0 || (y % 100 == 0 && y % 400 == 0)))
        std::cout << '1';
    else std::cout << '0';
}

Вроде так!

→ Ссылка
Автор решения: Mikhailo
if ((year%400==0)||((year%4==0)&&(year%100!=0))) cout << 1;
else cout << 0;
→ Ссылка