Программа путает значения
Из картинки ясно что делает программа - выдает число с наибольшим количеством делителей. Но почему-то выходит совершенно другой ответ, чем ожидалось увидеть.
#include <stdio.h>
int main()
{
unsigned int a,i;
int max=0;
int n = 0;
do {
printf("\nВведите число = ");scanf("%d",&a);
for (i=1; i<=a; i++)
if (a%i == 0) n = n + 1;
if(a!=0) printf("Делителей = %4d ", n);
if (n>max) max=a;
} while (!(a==0));
printf("Число с максимальным количеством делителей = %d делителей %d", max,n);
return 0;
}
Ответы (1 шт):
Автор решения: Igor
→ Ссылка
int n = 0;
int nMax = 0;
...
n = 0; // <--
for (i=1; i<=a; i++)
if (a%i == 0) n = n + 1;
...
if (n>nMax) {
max=a;
nMax = n;
}
...
printf("Число с максимальным количеством делителей = %d делителей %d", max,nMax);
