关于c++函数的一个小问题。求解答,

1inttest(inta){2intb;3for(b=2;b<=a-1;b++)4if(a%b==0)return0;5return1;}如上,是一个判断a是否为素数的... 1 int test(int a){
2 int b;
3 for(b=2;b<=a-1;b++)
4 if(a%b==0)return 0;
5 return 1;}

如上,是一个判断a是否为素数的函数。我的问题在第4行。因为b是一个变量,那么if(a%b==0)判断的是 ,对于所有的b均满足条件,还是存在一个b满足条件?我想要做到让所有的b均满足条件,该怎么办?如下,我想令所有的(y+m)满足“均不是素数”的条件后,令“s++”。还有,第五行 return 1 与 return 0 的关系是什么?

for(m=0;m<100;m++) { if (test(y+m))。。。。
展开
 我来答
海岸餡
2013-06-05 · TA获得超过274个赞
知道答主
回答量:53
采纳率:0%
帮助的人:39.8万
展开全部
//b满足条件指的是a%b==0;
//质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的
//数。

函数对于输入的变量a,如果对于所有小于a的b,存在一个b满足条件,就返回0,否则返回1;
因为当出现一个b满足条件后 if语句生效,函数终止,返回0;
return 0与return 1就返回值不同,用于根据返回值判断a是否满足条件,显然a是质数返回1,a是合数返回0;
中间的问题不是很懂,
不过这是个判断输入的a是不是质数的函数;
如果楼主想实现数质数的功能的话,这个函数可以;
更多追问追答
追问
看了你的回答,一下好像就懂了,多谢!还想问一下,
for(m=0;m<100;m++) //我想令所有的m都满足“均不是素数”的条件,该怎么做?
追答
for(m=0;mm不满足要求,跳出循环此时m<100
{
break();
}
}
if(m不等于100)m中存在质素,且第m个是质数;
if(m等于100)m中都是素数;//m中都是素数,则m循环到m=100,不满足for循环条件,停止循环;
楼主应该是想要找寻一段区间,使区间内的数均是素数;
建议楼主查找1~某一极大值,通过确定两个质素间的距离来查找这个区间。
抬头望那苍穹
2013-06-05 · 超过24用户采纳过TA的回答
知道答主
回答量:112
采纳率:0%
帮助的人:52.6万
展开全部
加上大括号你就明白了
int test(int a)
{
int b;
for(b=2;b<=a-1;b++)
{
if(a%b==0) //b就是在循环条件里面的b,每次都是一个值。
{
return 0; //如果满足if条件函数返回值是0
}
return 1; //不满足if条件函数返回值是1
}
你定义的是返回值为int型的函数,最后就得返回一个int型数据,至于你要返回哪个数字你可以自己决定的。
追问
for(m=0;m<100;m++) //我想令所有的m都满足“均不是素数”的条件,该怎么做?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阿弥陀佛J5
2013-06-05 · 超过36用户采纳过TA的回答
知道小有建树答主
回答量:63
采纳率:0%
帮助的人:77.8万
展开全部
我直接教你个吧,这个太烂了
int test(int a){
int n=0;
for(int i=2;i<a-1;i++)
if(a%i==0)
n=1;
return n; //是素数返回1,不是返回0
有什么问题可以再问
更多追问追答
追问
for(m=0;m<100;m++) //我想令所有的m都满足“均不是素数”的条件,该怎么做?
追答
for(m=0;m<100;m++)

if(!test(m))
~~~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友cd3d6c4
2013-06-05 · TA获得超过315个赞
知道小有建树答主
回答量:262
采纳率:0%
帮助的人:280万
展开全部
return 的是一个整数你return什么都不重要一般就0和1用来区别是或者不是素数。
看你的提问应该对编程理解不深,建议多看点相关书
只要存在一个b使得a%b==0就是说a不是素数,所以直接放回0,当循环结束时也就是说,没有能整除的整数,也就是素数的意思,所以返回1
希望能帮到你,哪里不清楚再问。
更多追问追答
追问
for(m=0;m<100;m++) //我想令所有的m都满足“均不是素数”的条件,该怎么做?
追答
不太能理解不好意思。。。
y+m是什么意思,y没有定义.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hy309354253
2013-06-05 · 超过39用户采纳过TA的回答
知道小有建树答主
回答量:177
采纳率:100%
帮助的人:87.7万
展开全部
1、第3行和第4行的意思是:在2到a-1之间,是否能找一个数b(2<=b<=a-1),使得a%b等于0,如果找到了,则return 0,即当前这个数a不是素数
2、如果在2到a-1之间,没有找到一个数b ,使得a%b等于0,则说明a是素数
3、到底想return 0,还是return 1,这是根据你自己的习惯来的,一般大家都喜欢用1表示真,用0表示假,当然,在C语言中,非0即表示真。在这里呢,当然是return 0表示当前数a不是素数,return 1表示当前数a为素数
更多追问追答
追问
for(m=0;m<100;m++) //我想令所有的m都满足“均不是素数”的条件,该怎么做?
追答
你的m是0到100之间的素数是客观存在的,是就是,不是就不是,不存在你想让它满足“均不是素数”的条件的,你到底想实现什么呢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式