来个人,删掉return 1和return 0

#include<stdio.h>
#include<math.h>
int prime(int m) {
int i, k;
if(m != 0)
k = (int)sqrt(m);
for ( i = 2; i <= k; i++) {
if (m % i == 0)
break;
}
if(i > k)
return 1;
else
return 0;
}
int super(int u) {
while(u != 0) {
if(prime(u)) {
u /= 10;
} else {
return 0;
}
}
return 1;
}
int main() {
int n;
scanf("%d", &n);
if(super(n)) {
printf("Yes");
} else {
printf("No");
}
return 0;
}

方法前面的int都换成void,然后把return都删掉

供参考:

#include<stdio.h>
void prime(int *m)
{
    int i;
    if(*m <= 1){
       *m = 0;
       return;
    }
    if(*m == 2 || *m == 3){
       return;
    }
    for (i = 2; i*i <= *m; i++) {
       if (*m % i == 0){
           *m = 0;
           break;
       }
    }
    return;
}
void super(int *u)
{
    int N;
    if(*u <= 0){
       *u = 1;
       return;
    }
    while(*u != 0) {
         N = *u;
         prime(&N);
         if(N != 0) {
            *u /= 10;
         }
         else {
            break;
         }
    }
    return;
}
int main()
{
    int n;
    scanf("%d", &n);
    super(&n);
    if(n==0) {
       printf("Yes");
    }
    else {
       printf("No");
    }
    return 0;
}