Это «своего рода» логический вопрос, который я пытался решить с помощью c. Я в основном ввожу все делители числа в массив и добавляю цифры к однозначному числу и сохраняю в переменной «лучший». Но вывод, который я получаю, это «Исключение с плавающей запятой (ядро сброшено)». Думал, что это будет проблема с одним из циклов, но я не могу его найти. Могу ли я узнать, что означает эта ошибка и что ее вызывает?
#include <stdio.h>
void main()
{
int n,a[50],b[50],k=0,l1=0,l2=0,temp,big,bigi,best=0,i,l3;
printf("Enter an integer (less than 10^5):- ");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
if(n%i==0)
{
a[k]=i;
k++;
}
}
for(i=0;i<k;i++)
{
b[i]=a[i];
}
for(i=0;i<k;i++)
{
if(a[i]<10)
{
continue;
}
else
{
l3=a[i];
while(l3>0)
{
temp=l3%10;
l1=l1+temp;
l3=l3/10;
}
if(l1>=10)
{
while(l1>0)
{
temp=l1%10;
l2=l2+temp;
l1=l1/10;
}
}
a[i]=l2;
}
}
big=a[0];
for(i=0;i<k;i++)
{
if(a[i]>big)
{
big=a[i];
bigi=i;
}
}
for(i=0;i<k;i++)
{
while(i!=bigi)
{
if(a[bigi]==a[i])
{
if(b[bigi]>b[i])
{
best=a[i];
}
else
{
best=a[bigi];
}
}
}
if(best=0)
{
best=a[bigi];
}
}
printf("The best number is :- %d",best);
}