c++看不懂这个地方,这是程序里的一部分,谁能帮我解释一下……谢谢

voidprime(intn,int*f){intk;*f=1;for(k=2;k<=n/2;k++)if(!(n%k))*f=0;}*f=1;//这句if(!(n%k)... void prime(int n,int *f)
{
int k;
*f=1;
for(k=2;k<=n/2;k++)
if(!(n%k)) *f=0;
}
*f=1;//这句
if(!(n%k)) *f=0;//这句
展开
 我来答
小飞花儿的忧伤
2011-08-27 · TA获得超过1661个赞
知道小有建树答主
回答量:1152
采纳率:100%
帮助的人:329万
展开全部
*f标志默认为1 //默认他是素数
在2到n/2(更好的可以在2到√(n+1))中找寻因子,若!(n%k)即n%k == 0 则k是因子,故改变*f为0
其实此时可以直接break;
综上prime的功能是判断n是否是质数,是的话*f=1,否则*f=0;
调用:
int judge;
prime(2,&judge);//因为2是素数,所以judge=1
踽踽独行Jerry
2011-08-27 · TA获得超过169个赞
知道小有建树答主
回答量:136
采纳率:0%
帮助的人:103万
展开全部
f表示返回1,0!1表示是素数,否则为非素数!
前边循环为判断是否素数!也就是n能否除以2~n/2的整数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
笑壹個
2011-08-27 · TA获得超过403个赞
知道小有建树答主
回答量:311
采纳率:0%
帮助的人:229万
展开全部
貌似是求n是否为素数,如果是素数则*f=1;否则*f=0;
if(!(n%k))
{
*f=0;
break;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式