#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;
}