一百以内的所有质数
intn,m;for(n=1;n<=100;n++){for(m=2;m<n;m++){if(n%m==0){break;}}if(n==m){System.out.pr...
int n, m;
for (n = 1; n <= 100; n++) {
for (m = 2; m < n; m++) {
if (n % m == 0) {
break;
}
}
if (n == m) {
System.out.println(m);
}
请帮我分析下这道题,详细点,谢谢 展开
for (n = 1; n <= 100; n++) {
for (m = 2; m < n; m++) {
if (n % m == 0) {
break;
}
}
if (n == m) {
System.out.println(m);
}
请帮我分析下这道题,详细点,谢谢 展开
5个回答
展开全部
首先外层循环从1-100,然后在每一次循环中判断每一个数是不是质数,需要循环判断能不能找到可以整除这个数的数,找到即说明不是质数,另外最小的质数是2,所以从2开始,而条件中的m<n应该是不够合理的,应该为m<=n/2更精确一点,因为一个数如果能被比它一半大的数整除,除出来的结果肯定是比它一半小。另外最后的判断是错的,我给个完整的,但是没试过行不行。
int n, m;
boolean isZhiShu = true;//标志一个数是不是质数
for (n = 1; n <= 100; n++) {
for (m = 2; m < n; m++) {
if (n % m == 0) {
isZhiShu = false;如果这个数能被某个数整除,则不是质数
break;//不是质数,不用继续判断了,跳出本次循环后会经过下一个if判断是否为质数
}
if(isZhiShu||n==2){//2也是质数,但是上面的判断对2不适用
System.out.println(n+"是质数");
}
}
由于时间没有细看了,自己研究一下吧,有问题再说
int n, m;
boolean isZhiShu = true;//标志一个数是不是质数
for (n = 1; n <= 100; n++) {
for (m = 2; m < n; m++) {
if (n % m == 0) {
isZhiShu = false;如果这个数能被某个数整除,则不是质数
break;//不是质数,不用继续判断了,跳出本次循环后会经过下一个if判断是否为质数
}
if(isZhiShu||n==2){//2也是质数,但是上面的判断对2不适用
System.out.println(n+"是质数");
}
}
由于时间没有细看了,自己研究一下吧,有问题再说
更多追问追答
追问
你那个代码只输出了一个3
你那个代码只输出了一个3
展开全部
错题,得出来的应该不全
更多追问追答
追问
哪里错了?运行结果是对的
追答
你看看34和38有吗?结果里没有输出吧,可是他俩也是质数,所以说,这个题输出的结果比实际的要少
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
2、3、5、7、11、13、17、19、23、29、31、37、39、41、43、47、53、59、61、67、71、73、79、83、89、97
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
2、3、5、7、11、13、19、23、29、31、37、39、41、43、47、53、59、61、67、71、73、79、83、
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询