Как проверить, что натуральное 4-значное число содержит ровно две цифры 7?

Как написать код для решения этой задачи (на С++) ?

введите сюда описание изображения

Вот мой код , не понимаю в чем ошибка.

`
#include <iostream>
#include <math.h>

using namespace std;

int main()
{
    setlocale(LC_ALL, "Rus");
    int a;
    int a1, a2, a3, a4;
    cout << " a= " << endl;
    cin >> a;
    for ((a < 1000) || (a >= 9999))
    {
        cout << " a= " << endl;
        cin >> a;
    }
        
    a1 = int(a / 1000);
    a2 = int(a / 100) - a1 * 10;
    a3 = int(a / 10) - a1 * 100 - a2 * 10;
    a4 = a - a1 * 1000 - a2 * 100 - a3 * 10;
    if ((a1 == a2 == 7) || (a2 == a3 == 7) || ( a3 == a4 == 7) || (a1 == a4 == 7))
    {
        cout << " В числе есть две семерки " << endl;
    }
    else
        cout << "Число не подходит " << endl;
    return 0;
}`

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

Автор решения: Mikhailo
int main() {
    int a, c = 0;
    cout << "a = ";

    for (cin >> a; a < 1000 || a > 9999; cin >> a)
        cout << "a = ";

    for (; a; a /= 10) c += (a % 10 == 7);

    if (c == 2)
        cout << "В числе есть две семерки " << endl;
    else
        cout << "Число не подходит " << endl;
    }
→ Ссылка