Код не печатает все сильные числа в заданном диапазоне нижнего и верхнего предела. Это только печать 1. Не удается найти ни логическую, ни синтаксическую ошибку. Пожалуйста, помогите.
Новое в программировании на C. Практиковал С вопросы онлайн. Вопрос собирался напечатать все сильные числа.
int strong (int lower_limit,int upper_limit)
{
int i,temp1,temp2,product=1,sum=0;
for(i=lower_limit;i<=upper_limit;i++)
{
temp1=i;
while(temp1!=0)
{
temp2=temp1%10;
for( ;temp2>0;temp2--)
{
product=temp2*product;
}
temp1/=10;
sum=sum+product;
}
if(i==sum)
printf("%d is a strong number\n",i);
}
return 0;
}
int main()
{
int lower_limit,upper_limit;
printf("Enter lower limit number\n");
scanf("%d",&lower_limit);
printf("Enter upper limit number\n");
scanf("%d",&upper_limit);
strong(lower_limit,upper_limit);
return 0;
}
Если я поставлю lower_limit как 1 и upper_limit как 1000, я должен получить 1,2 и 145.