一个哥德巴赫猜想程序代码的不解之处
代码中的i, j, k变量分别起什么作用?代表着什么?这里不是表示循环的控制变量吗?#include <stdio.h>
int main(){
int ss(int i);
int i, j, k, flag1, flag2, n=0;
for(i = 4; i<100; i+=2)
for(k = 2; k<=i/2; k++){
j = i-k;
flag1 = ss(k);
if(flag1){ //这里if中的判断条件为什么是这样?以前碰到的都是有运算符号的,这样也算是判断条件?
flag2 = ss(j);
if(flag2){
printf("%3d=%3d+%3d", i, k, j);
n++;
if(n%5 == 0){
printf("\n");
}
}
}
}
}
int ss(int i){
int j;
if(i <= 1)
return 0;
if(i == 2)
return 1;
for(j = 2; j<i; j++){
if(i%j == 0)
return 0;
else if(i != j+1) //这里为什么要判断i != j+1?
continue; //这里用break;可以吗?
else
return 1;
}
}