求不超过1000的回文素数。

请问我这样编程的错误在哪里?烦请大家指出,不胜感激!

#include<stdio.h>
int Isprime(int x);
int main()
{
    printf("Following are palindrome primes not greater than 1000:\n");
    int i,ret;
    int a,b;
    for(i=2;i<=1000;i++)
    {
        ret=Isprime(i);
        if(ret!=0&&ret>10&&ret<100)
        {
            a=ret/10;
            b=ret%10;
            if(a=b)
            {
                printf("%d\t",ret);
            }
            else
            {
                ;
            }
        }
        else if(ret!=0&&ret>99&&ret<1000)
        {
            a=ret/100;
            b=ret%10;
            if(a=b)
            {
                printf("%d\t",ret);
            }
            else
            {
                ;
            }
        }
        else
        {
            ;
        }
    }
}

int Isprime(int x)
{
     int i;
    int result=0;
    for(i=2;i<=x/2;i++)
    {
        if(x%i==0)
        {
            x=0;
            break;
        }
    }
    result+=x;
    return result;
}

主要问题在第15行 第28行,判断相等是用'==' ,代码里是赋值‘=’,修改如下,供参考:

#include<stdio.h>
int Isprime(int x);
int main()
{
    printf("Following are palindrome primes not greater than 1000:\n");
    int i,ret;
    int a,b;
    for(i=2;i<1000;i++) //for(i=2;i<=1000;i++)
    {
        ret=Isprime(i);
        if(ret!=0&&ret>9&&ret<100) //if(ret!=0&&ret>10&&ret<100)
        {
            a=ret/10;
            b=ret%10;
            if(a==b)  //if(a=b)
            {
                printf("%d\t",ret);
            }
            //else
            //{
            //    ;
            //}
        }
        else if(ret!=0&&ret>99&&ret<1000)
        {
            a=ret/100;
            b=ret%10;
            if(a==b)   //if(a=b)
            {
                printf("%d\t",ret);
            }
            //else
            //{
            //    ;
            //}
        }
        //else
        //{
        //    ;
        //}
    }
    system("pause");
    return 0;
}
int Isprime(int x)
{
    int i;
    int result=0;
    for(i=2;i<=x/2;i++)
    {
        if(x%i==0)
        {
            x=0;
            break;
        }
    }
    result+=x;
    return result;
}

下面是一个判断素数的函数,整个程序运行下来不只输出了回文素数,还有其他的不合要求的素数。