这个程序哪里有错误呢?

输入585,
输出

n是素数
n是素数

img


img

#include <stdio.h>
#include <assert.h>
#include <math.h>

int isprime(int x)
{
    assert(x > 1);
    if (x == 2)
        return 1;
    int n = (int)sqrt(x);
    for (int i = 2; i <= n; i++)
    {
        if (x % i == 0)
            return 0;
    }
    return 1;
}

int inverse(int x)
{
    int r = 0;
    while (x)
    {
        r = r * 10 + x % 10;
        x /= 10;
    }
    return r;
}

int main()
{
    int n;
    printf("请输入一个大于1的正整数: ");
    scanf("%d", &n);
    if (isprime(n) && isprime(inverse(n)))
        printf("%d是绝对素数\n", n);
    else
        printf("%d不是绝对素数\n", n);
    return 0;
}

判断素数的函数里,if(m=0) 是错误的,应该if(m == 0) .判断是否是素数的逻辑也是有错误的。