C语言 判断素数 求解释

int prime(int n)
{
int flag=1,i;
for(i=2;i<n/2&&flag==1;i++)
{
if(n%i==0)
{
flag=0;
}
return(flag);
}
}
希望可以具体解释 包括flag等 具体是什么意思。。

int prime(int n) //定义一个名为prime的函数,n为形式参数
{
int flag=1,i; //定义变量flag=1
for(i=2;i<n/2&&flag==1;i++)//循环的意思指n逐个除以2到n/2的数
{
if(n%i==0)
{
flag=0;//如果2到n/2有一个数能整除n,flag=0
}
return(flag);返回flag的值,也就是prime函数的函数值,如果是0,n不是素数,如果是1是素数
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-18
flag是作为一个旗帜变量的!比较正规一点!你也可以随便起个名字。如过
for(i=2;i<n/2&&flag==1;i++)
起先都是flag都是1,然后当判断到他被整除了我们就可以将它设为1减少循环的次数,直接跳出当前的判断。减少多次判断,节省时间、
第2个回答  2011-12-18
flag是素数标志,如果为1代表是素数 为0代表不是
从2到n/2依次尝试 是不是n的约数,如果是表达式(n%i==0)结果为真,将FLAG修改成0
最后返回这个标志就可以了
第3个回答  2020-03-26
第4个回答  2020-02-19
相似回答