C++求回文素数个数

洛谷B2136求回文素数个数,后七个测试点全错,实在想不到原因了
#include 

using namespace std;

bool su(int x)
{
    for(int i=2;i<=sqrt(x*1.0);i++)
    if(x%i==0)
        return false;
    return true;
}

bool hui(int x)
{
    int i=0,j=0,a[50],b[50];
    while(x>0)
    {
        i++;
        a[i]=x%10;
        x/=10;
    }
    for(int k=i;k>=1;k--)
    {
        j++;
        b[j]=a[k];
    }
    for(int l=1;l<=i;l++)
    {
        if (b[i]!=a[i])
            return false;
    return true;
    }
}

int main()
{
    int n,s;
    while(cin>>n&&1110000)
    {
        s=0;
    for(int k=11;k<=n;k++)
        {if (hui(k)&&su(k))
            s++;
    
    }
    cout<return 0;
}

想不到还要测啥了

for(int l=1;l<=i;l++)
{
if (b[i]!=a[i])
return false;
循环变量是l,不是i啊。你比较b[i]和a[i]干啥,比较b[l]和a[l]阿