怎样去除重复输出呢?例如113和311,到了311时有输出311和113

img


答案:

img


该如何在此基础上改进呢?总是出现重复的输出,要如何改进呢?求帮!

不重复需要一个临时数组,新找出来的素数要在检查在不在这个数组里。

#include <stdio.h>

int prime(int n){
    if (n<2) return 0;
    for (int i=2;i<n;i++)
        if (n%i==0) return 0;
    return 1;
    }

int reverse(int n){
    int t = 0;
    while (n>0){
        t = t*10 + n%10;
        n /= 10;
    }
    return t;
}

int NotinArray(int n,int arr[]){
    for (int i=0;i<1800;i++)
        if (n==arr[i]) return 0;
        
    return 1;
}

int main()
{
    int r,t[1800];
    int j=0;
    for (int i=0;i<1800;i++)
        t[i]=0;
    for (int i=100;i<1000;i++){
        r = reverse(i);
        if (prime(i) && prime(r) && r>100 && NotinArray(i,t)){
            printf("%d %d\n",i,reverse(i));
            t[j] = i; j++;
            t[j] = reverse(i); j++;
        }
    }

    return 0;    
}

if里加一个&& i ! = e