这个为什么没有输出捏?(N代表第几个丑数,输出对应的丑数)😂🤔)

#include <stdio.h>
#include <stdlib.h>
int shelfishdigit(int n)
{
int i,j,k,count=0,s[100000]={1},t[4]={2,3,5,7},deposit;
for(i=2;i<=2000000000;i++)
for(j=2;j<=i;j++)
{
if(i%j==0)
count++;
deposit=count;
while(j==i)
{
if(count>4)
break;
else
{
count=0;
for(k=0;k<4;k++)
{
if(i%t[k]==0)
count++;
}
if(count==deposit)
{
s[i-1]=i;
count==0;
}
}
}
}
if(n!=1)
printf("%d\n",s[n-1]);
else printf("1\n");

}

int main()
{
int N;
while(1)
{
scanf("%d",&N);
if(N==0) break;
shelfishdigit(N);
}

return 0;

}

while(j==i)里面没有修改i和j的值,那他们一直相等,一直循环,死循环了
虽然有if(count>4)break;
可是你循环之前先把count赋值了0,循环里只循环四次,count最多到4,永远不会大于4