下面的程序是求9999以内的“完全数”。所谓完全数是指这样的自然数:它的各个约数(不包括该数自身)之和等于该数自身。如28=1+2+4+7+14就是一个完全数。请在程序的每条横线处填写一个语句,使程序的功能完整。 注意:请勿改动main()主方法和其

admin2009-01-15  73

问题 下面的程序是求9999以内的“完全数”。所谓完全数是指这样的自然数:它的各个约数(不包括该数自身)之和等于该数自身。如28=1+2+4+7+14就是一个完全数。请在程序的每条横线处填写一个语句,使程序的功能完整。
   注意:请勿改动main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。
      public class QuanShu{
        public static void main(String args[]){
          for(int n=l;n<9999;n++)
            if(______________)System.out.println(n);
          }
      public static iht divsum(int n){//该方法功能是求一个数的所有约数
        int  s=0;
          for(int i=l;i<n;i++)
           if(_________________)
      __________________
           return s;
          }
     }

选项

答案n==divsum(n) n%i==0 s+=i;

解析 本题考查for循环语句、求余运算符(%)和Java语言的方法的使用。解答本题的关键是熟悉使用for循环语句。在本题中,if(n==divsum(n))语句是用来调用divsum(n)方法(其中n为方法的实际参数)和判断某个自然数是否为“完全数”。n%i==0是用来判断数n是否能被数i整除,  s+=i;是用来累加某个自然数的所有约数。
转载请注明原文地址:https://jikaoti.com/ti/FkkiFFFM
0

最新回复(0)