A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 风云1989 中级黑马   /  2016-12-14 23:43  /  1548 人查看  /  14 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一个数如果恰好等于它的因子之和,
* 这个数就称为 "完数 "。
* 例如6=1+2+3。
*    6=1*2*3
*
* 编程找出1000以内的所有完数。
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端

14 个回复

倒序浏览
个人意见,利用for循环,再用个math.random*1000,零到999之间的数,数据类型就用int没问题,math.random前面加个(int),强制转换,希望可以帮到你
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
回复 使用道具 举报
课后题,不难,将可以整出的除数放入集合,找出集合元素和等于这个数时打印就OK了
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
for(int i=1;i<=1000;i++){
  int sum = 0;
  for(int j=1,j<i;j++){
     if(i%j==0){
      sum += j;
  if(sum==i)
可以理解了吧,剩下的自己补充
回复 使用道具 举报
楼主:手机手打,加上main方法就可以出结果了:ArrayList<Integer> list=ArrayList<>();
for(int i=1;i<=1000;i++){
int count =0;
for(int j=1;j<=500;j++){
if(i%j==0){
count +=j;}}
if(count ==i){
list.add(i);}
}
Syso (list);
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
for循环1000个数 再for找出每个数的因子 用变量把因子之和存起来 对比这个保存因子和的变量与当前外层for的那个数 打印。。语无伦次不知道能不能看懂哈哈
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
FAN8210 初级黑马 2016-12-15 06:39:12
8#
Albertups 发表于 2016-12-15 01:47
楼主:手机手打,加上main方法就可以出结果了:ArrayList list=ArrayList();
for(int i=1;i ...

学习了,看来我还的努力
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
冷水泡面 发表于 2016-12-15 03:03
for循环1000个数 再for找出每个数的因子 用变量把因子之和存起来 对比这个保存因子和的变量与当前外层for的 ...

谢谢了啊 ,哈哈
回复 使用道具 举报
FAN8210 发表于 2016-12-15 06:39
学习了,看来我还的努力

一起努力
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
回复 使用道具 举报
啥叫因数搞懂了,就差不多了吧?
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
6的因数不是包括6吗
回复 使用道具 举报
class WanShu {
        public static void main(String[] args) {
                for(int i = 1;i <= 1000;i++){
                        if(isWanShu(i))
                                System.out.println(i);               
                }               
        }

        /*
                判断一个数是否是完数
                1.返回值boolean
                2.参数列表 int n
        */
        public static boolean isWanShu(int n) {
                int sum = 0;
                for(int i = 1;i <= n / 2;i++){
                        if(n % i == 0)
                                sum +=i;
                }
                return sum == n;
        }
}

来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
import java.io.*;
class test  
{
        public static void main (String[] args) throws java.lang.Exception
        {
                getWanShu();
        }
       
        public static void getWanShu() {
            
            for (int i = 2;i <= 1000;i++ ) {
                int sum = 0;
                
                for (int j = 1;j < i ;j++ ) {
                    if(i % j == 0) {
                        sum += j;
                    }
                }
                
                if(i == sum) {
                    System.out.println(i);
                }
                
            }
        }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马