求解这个关于水手分椰子的问题为什么最后结果会不对呢?

问题遇到的现象和发生背景

img

问题相关代码,请勿粘贴截图

#include<stdio.h>
int main()
{
int i, n, a;
a=1;
printf("Input last:");
while(1)
{
n=a;
for(i=1;i<=5;++i)
{
n=5*n;
if(n%4!=0)
break;
n=n/4;
n+=1;
}
if(i==6)
break;
++a;
}
printf("the sum is:%d",n);
return 0;
}

运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

#include <stdio.h>
int main(){
    int n,x,j,k,l,m;
    for(n=5;;n++){
        j=4*(n-1)/5;
        k=4*(j-1)/5;
        l=4*(k-1)/5;
        m=4*(l-1)/5;
        if(n%5==1&&j%5==1&&k%5==1&&l%5==1&&m%5==1){
            printf("这堆椰子至少数量:%d个n",n);
            printf("分别见到椰子的数量:%d %d %d %d\n",j,k,l,m);
            break;
        }
    }
    return 0;
}