新手相关,小程序,求修改
java吧
全部回复
仅看楼主
level 4
霜之守望者
楼主
RT。
写一个程序,判断n=29是素数,还是和数。
我这样写:
public class Alone4_5{
public static void main (String[] args){
int n=29;
for(int a=29;a<=2;a--){
if((n%(a-1))==0)
System.out.print("好吧,"+n+"为和数");
else
continue;
}
System.out.print(n+"为素数");
}
}
CMD提示29是素数。
我觉得这段代码还可以简化,但是不知道更好的了,求高手改写,谢谢~~
2012年08月24日 15点08分
1
level 4
霜之守望者
楼主
而且我写的这段程序,不管29是否为和数,最后一行肯定会显示
29为和数
2012年08月24日 15点08分
2
level 9
不吃猫儿的鱼
逻辑问题啊 楼主 你把a <= 2 改成a >= 2
2012年08月24日 15点08分
4
不吃猫儿的鱼
a初始已经是29了怎么去小于2
2012年08月24日 15点08分
不吃猫儿的鱼
回复 不吃猫儿的鱼 : if不带括号 这真不是好习惯
2012年08月24日 15点08分
霜之守望者
回复 不吃猫儿的鱼 :迭代因子不是有一个a--的么?
2012年08月24日 15点08分
不吃猫儿的鱼
回复 霜之守望者 : 关a-- 什么事 for循环的逻辑你都没搞清楚么
2012年08月24日 15点08分
level 7
天飞洪SKY
for里面应该是a>2吧
2012年08月24日 15点08分
5
level 7
天飞洪SKY
如果a=2,那么n%(a-1)就肯定是0了
2012年08月24日 15点08分
6
霜之守望者
谢谢,这个我倒是没想到。
2012年08月24日 15点08分
level 8
aion5201314
这个代码有问题吧,不只是循环里面的东西。
2012年08月24日 15点08分
7
霜之守望者
嗯,我也发现了~
2012年08月24日 15点08分
level 16
windsun_ul
有种算法是,从 2 开始,依次删除集和中所有此数的倍数,
然后是集和中剩下的最小的数的倍数,
处理到最大数的平方根时,**中就只有素数了
2012年08月24日 21点08分
8
1