
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;//这句 展开
{
int k;
*f=1;
for(k=2;k<=n/2;k++)
if(!(n%k)) *f=0;
}
*f=1;//这句
if(!(n%k)) *f=0;//这句 展开
展开全部
*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
在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
展开全部
f表示返回1,0!1表示是素数,否则为非素数!
前边循环为判断是否素数!也就是n能否除以2~n/2的整数
前边循环为判断是否素数!也就是n能否除以2~n/2的整数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
貌似是求n是否为素数,如果是素数则*f=1;否则*f=0;
if(!(n%k))
{
*f=0;
break;
}
if(!(n%k))
{
*f=0;
break;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询