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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程 找出1000以内的所有完数。
我的做法:
[AppleScript] 纯文本查看 复制代码
for (int i = 1; i <= 1000; i++) {
			int a = i;							//因式分解的数
			int sum = 1;						//因式分解的数之和
			for (int j = 2; j <= a; j++) {		//循环分解
				if (a % j == 0) {
					a /= j;
					sum += j ;
					j = 2;
					
				}
			}
			if (i == sum) {						//判断是否为“完数”
				System.out.println(i);
			}
		}


1 个回复

倒序浏览
因子最大也就i/2,可以提高一点效率
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马