在oj上说出现浮点错误(除数可能为零),该如何解决啊

#include<stdio.h>
2
int main()
3
{
4
int n,m,sum,t,i,mask;
5
scanf("%d %d",&n,&m);
6
sum=0;
7
mask=1;
8
for(i=1;i<=n;i++)
9
{
10
if(m!=0)
11
{
12
t=i/m;
13
}
14
int a=i;
15
while(a>9)
16
{
17
a/=10;
18
mask*=10;
19
}
20
do{
21
int d=i/mask;
22
sum+=d*d;
23
i%=mask;
24
mask/=10;
25
}
26
while(mask>0);
27
if(sum==t)
28
{
29
printf("%d\n",i);
30
}
31
}
32
return 0;
33
}

img

第24行 mask/=10;导致mask=0了, 下次循环到21行,mask又是除数,0能做除数吗