HDOJ 1016一直WA,格式和思路我都觉得没问题啊

 #include<stdio.h>
#include<stdlib.h>

int n;
int *s;

int isPrime(int num) {
    int result = 1;
    for(int i = 2; i < num; i++) {
        if(num % i == 0) {
            result = 0;
            break;
        }
    }
    return result;
}

void dfs(int step) {
    if(step == n) {
        if(isPrime(s[n - 1] + s[0])) {
            for(int i = 0; i < n; i++) {
                if(i != 0) {
                    printf(" ");
                }
                printf("%d", s[i]);
            }
            printf("\n");
        }
    }
    int tmp;
    for(int i = step; i < n; i++) {
        if(isPrime(s[step - 1] + s[i])) {
            tmp = s[step];
            s[step] = s[i];
            s[i] = tmp;
            dfs(step + 1);
            tmp = s[step];
            s[step] = s[i];
            s[i] = tmp;
        }
    }
}

int main() {
    int count = 0;
    while(scanf("%d", &n) == 1) {
        s = (int *)malloc(sizeof(int) * n);
        for(int i = 0; i < n; i++) {
            s[i] = i + 1;
        }
        printf("Case %d:\n", ++count);
        if(n >= 1) {
            dfs(1);
        }
        printf("\n");
    }
    return 0;
}

https://www.cnblogs.com/ldy-miss/p/5760386.html