flag==1 在C++中什么意思

来源:百度知道 编辑:UC知道 时间:2024/06/25 11:23:47
这个是C++的一个程序:
#include <iostream>
using namespace std;
int main()
{int prime(int); /* 函数原型声明 */
int n;
cout<<"input an integer:";
cin>>n;
if (prime(n))
cout<<n<<" is a prime."<<endl;
else
cout<<n<<" is not a prime."<<endl;
return 0;
}

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);
}
最后的:for (i=2;i<n/2 && flag==1;i++)是什么意思啊?flag==1谢谢

是个判断条件,如果等于1继续循环,否则跳出循环。

int prime(int n)是一个判断是否为素数的函数,其中flag是一个标记,当flag==1时为还未试出n的因数,当flag==0时为己经找到n的因数,则判断他不是素数。
素数指的是只能被1或本身整除的数。for (i=2;i<n/2 && flag==1;i++)是从2开始试商直到n/2(n无法整除比n/2大的数)当发现n的因数时把flag的值设为0,使其后的循环结束(己确定n为合数),flag==1的话那么这个数为素数。

int prime(int n)是一个判断是否为素数的函数,flag是一个标记,当flag==1时为还未试出n的因数,当flag==0时为己经找到n的因数。
素数指的是只能被1或本身整除的数
for (i=2;i<n/2 && flag==1;i++)是从2开始试商直到n/2(n无法整除比n/2大的数)当发现n的因数时把flag的值设为0,使其后的循环结束(己确定n为合数)

for (i=2;i<n/2 && flag==1;i++){
.....function
}

意思:当i小于n/2并且flag为一的时候执行function,执行完后i加1

判断flag 是否为1,为1的话返回真,for循环继续
,
0的话返回假,退出for循环,执行下一条语句return(flag);

这是一个判断是否为素数的函数,没有错误

flag是一个变量,它等于1是for循环继续执行循环体的条件
一旦它不等于1了,循环就退出了