C语言求给定区间内同构数之和

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

题目:正整数[a,b]之间的全部同构数之和
输入:只有一行,两个正整数a,b,空格分开,位于[1,10000]之间
输出:一行,a,b,之间同构数之和

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

以下是我的答案,DEV上运行正确,但无法通过测评

#include<stdio.h>
#include<math.h>
int main()
{
    int a,b;
    scanf("%d %d",&a,&b);
    int m,i,j,sum;
    int s[10000];
    for(i=a;i<=b;i++){
        for(j=1;j<5;j++){
            if(i>=pow(10,j-1)&&i<=pow(10,j)){
                m=(i*i)%(int)(pow((double)10,(double)j));
                if(m==i){
                    s[i]=i;
                }
                else{
                    s[i]=0;
                }
            }
        }
    sum=sum+s[i];        
    }
    printf("%d\n",sum);
    return 0;
 } 




供参考:

#include <stdio.h>
int main()
{
    int i, a, b, k, t, s, sum;
    scanf("%d%d", &a, &b);
    for (i = a,sum = 0; i <= b; i++)
    {
        t = i; k = i * i; s = 1;
        while (t) { s *= 10; t /= 10; }
        if ((k % s) == i)
            sum+=i;
    }
    printf("%d",sum);
    return 0;
}