Как необходимо переделать код

В задании необходимо: Определить количество чисел последовательности, делителем которых является её первый член. Окончание ввода – отрицательное число. Использовать массив нельзя.

Код программы:

#include <stdio.h>                          //библиотеки
#include <locale.h>
#include <math.h>


int main()
{
    setlocale(LC_ALL,"rus");                                    //переменныe
    int a;
    int count = 0;
    int i;
    printf("Программа подсчитывает количество чисел последовательности,делителем которых является её первый член.Окончание ввода - отрицательное число\n\n\n"); 
    while(1)                                //цикл while()
    {
        printf("Введите элемент ряда: ");
        scanf("%d",&a);
        if(a % a == 0)
        {
            count++;
        }
        if(a < 0)                       //выход из цикла
        {
            break;
        }
        i++;
    }
    printf("Количество чисел последовательности,делителем которых является её первый член = %d",count);
    return 0;
}

Как можно это реализовать,мой способ считает абсолютно все вводимые числа. Заранее спасибо за помощь.


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

Автор решения: Vladimir Afanasyev
#include <iostream>
#pragma warning(disable:4996)
using namespace std;

int main()
{
    setlocale(LC_ALL, "rus");               
    int a;
    int count = 0;
    bool firstElement = false;
    int divider;
    int i;
    printf("Программа подсчитывает количество чисел последовательности,делителем которых является её первый член. Окончание ввода - отрицательное число\n\n\n");
    while (1)                          
    {
        printf("Введите элемент ряда: ");
        scanf("%d", &a);
        if (!firstElement)
        {
            divider = a;
            firstElement = true;
        }
        else
            if (a % divider == 0 && a > 0)
            {
                count++;
            } else if (a < 0)                       
            {
                break;
            }
    }
    printf("Количество чисел последовательности,делителем которых является её первый член = %d", count);
    return 0;
}
→ Ссылка