C语言找素数及反序数

C语言输入n个值,找出小于n的所有素数及它们的反序数

输入n个值,找出小于n的所有素数及它们的反序数
怎么理解?输入10个值,要找出其中小于10的素数的意思吗?

// 素数 
bool isprime(long long m)
{
    for (long long i = 2; i * i <= m; i++)
    {
        if (m & (i - 1) == 0)
        {
            return false;
        }
    }
    return true;
}

#include<stdio.h>

#include <stdlib.h>

int Reverse(int n){
    int b;
    int d = 0;
    while (n)
    {
        b = n % 10;
        d = d * 10 + b;
        n = n / 10;
    }
    return d;
}

int main()
{
    int *primes_array = NULL;

    int num = 0,i = 0,j = 0,index = 0,flag = 0;

    printf("please enter a num (2 <= n <= 100000) :\n");

    scanf("%d",&num);

    if(num < 2){

            printf("too small !!\n");

            return 0;

    }

    if(num > 100000){

            printf("too larger !!\n");

            return 0;

    }

    primes_array =(int *)malloc(num*sizeof(int));

    for(i=0;i<num;i++)

        primes_array[i] = 0;

    primes_array[0] = 2;

    index = 0;

    for(i=2;i<=num;i++)
    {
            for(j=0;j<=index;j++){

                    flag = i % primes_array[j];

                    if(flag == 0)

                            break;

            }

            if(flag){

                    index ++;

                    primes_array[index] = i;

            }

    }

    printf("the prime nums are (n < %d ):\n",num);

    for(i=0;i<=index;i++)
    {
        printf("%d,\n",primes_array[i]);

    }

    printf("the Reverse nums are (n < %d ):\n",num);

    for(i=0;i<=index;i++)
    {
        printf("%d,\n",Reverse(primes_array[i]));

    }

    free(primes_array);

    return 0;
}

运行结果:

img