求解答,一道C语言的编程题目 有一些疑惑!!

#include "stdio.h"
#include "math.h"
int hehe(int n){
int r = sqrt(n);
int i;
for(i=2;i<=r;i++){
if(n%i==0){
return 0;
}
}
return 1;
}
int main(){
int n,i,j,k;
scanf("%d",&n);
if(n {
printf("2\n");return 0;
}else
{
for(j=n,k=n;j>=2;j--,k++)
{
if(hehe(j)||hehe(k))
{
if(hehe(j))
{
printf("比%d小的素数%d\n",n,j);
}
if(hehe(k))
{
printf("比%d大的素数%d\n",n,k);
}
break;
}
}
}
return 0;
}
第一个return0和第一个return1 有什么作用,去掉有什么影响?
请问倒数第二个return0 存在的作用是什么,把他去掉有什么影响呢?

函数hehe()主要用于判断素数。第一个return 0的作用在于当发现n可以被整除时,直接return 0,表明n不是素数。去掉不能得到n到底是不是素数。
第一个return 1表明n不能被2-sqrt(n)之间的数整除(若能被整除,则会执行return 0, 不会再执行return 1),表明n是素数。

倒数第二个return 0去掉也没什么影响。

第一个return 0和return1 的作用是返回函数的结果,返回0即return 0表明n不是素数,返回1则表明n是素数。你函数定义的返回值是int型,去掉后会返回不确定的值,一般不是0,就是说你输入任何数,返回结果都是该数是素数。
第二个return的也是返回值,main函数的返回值如果定义是void,则可以不用返回,但是在C99的标准里void main()是错误的,必须是int main(),带return语句,返回0表示正常退出,否则是异常退出。

if(n {
printf("2\n");return 0;
}
这个if(n 是什么