請教一下,為什么我這個輸出只有1,是邏輯哪里錯了嘛?
class wanshu{
public static void main(String args[]){
for(int i=1;i<=1000;i++){
int sum=0;
for(int j=1;j<=i;j++)
{
if(i%j==0){
sum=sum+j;
}
}
if(sum==i)
System.out.println(i);
}
}
}
uj5u.com熱心網友回復:
因為你內回圈把等于i這個數加上去了,自己加上任何數都會大于自己,所以你把大于1以后的數都排除了。
uj5u.com熱心網友回復:
還有內回圈可以優化一下,任何數的因數都不會大于自己的一半。j<=i/2,這樣你就不會出問題了。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/129401.html
標籤:Java相關
下一篇:MD5問題
