回文素数个数问题洛谷

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

不知道这两个代码有什么区别,第一个在洛谷没AC第二个AC了

用代码块功能插入代码,请勿粘贴截图
#include 
#include 
int a[10],b[10];
int f(int n)
{
    for(int i=2;i<sqrt(n);i++)
    {
        if(n%i==0)
        return 0;
    }
    return 1;
}
int m(int n)
{
    int i=0,j=0;
    while(n!=0)
    {
        a[i]=n%10;
        n/=10;
        i++;
    }
    for(int k=i-1;k>=0;k--)
    {
        b[j]=a[k];
        j++;
    }
    for(int l=0;lif(a[l]!=b[l])
        return 0;
    }
    return 1;
}
int main ()
{
    int n,sum=0;
    scanf("%d",&n);
    for(int i=11;i<=n;i++)
    {
        if(m(i)==1&&f(i)==1)
            sum++;
    }
    printf("%d",sum);
    return 0;
}

#include 
int ss(int x)
{
    for(int i=2;i<=x-1;i++)
        if(x%i==0)
            return false;
    return true;            
}
int hw(int x){
    int t=0,m=0,a[15],b[15];
    while(x!=0)
    {
        t++;
        a[t]=x%10;
        x/=10;
    }
    for(int i=t;i>=1;i--)
    {
        m++;
        b[m]=a[i];
    }
    for(int i=1;i<=t;i++)
        if(a[i]!=b[i])
            return false;
    return true;        
}
int main()
{
    int n,ans=0;
    scanf("%d",&n);
    for(int i=11;i<=n;i++)
        if(hw(i)&&ss(i))
            ans++;
    printf("%d",ans);
    return 0;        
}

第一个判断素数中应该是i<=sqrt(n)