新手相关,小程序,求修改
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
for里面应该是a>2吧
2012年08月24日 15点08分 5
level 7
如果a=2,那么n%(a-1)就肯定是0了
2012年08月24日 15点08分 6
谢谢,这个我倒是没想到。
2012年08月24日 15点08分
level 8
这个代码有问题吧,不只是循环里面的东西。
2012年08月24日 15点08分 7
嗯,我也发现了~
2012年08月24日 15点08分
level 16
有种算法是,从 2 开始,依次删除集和中所有此数的倍数,
然后是集和中剩下的最小的数的倍数,
处理到最大数的平方根时,**中就只有素数了
[咦]
2012年08月24日 21点08分 8
1