javastudy-打印完数

打印完数

描述

一个数如果恰好等于它的因子之和,这个数就成为“完数”。例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。编程序打印出1000之内(包括1000)所有的完数,并按如下格式输出其所有因子:6 its factors are 1,2,3

输入

无输入

输出

输出1000以内所有的完数及其因子,每行一个完数。

代码

import java.util.*;
import java.math.*;
public class Main
{
	public static void main(String[] args)
	{
		for(int i = 6; i <= 1000; i++)
		{
			Main a = new Main();
			if(a.check(i))
			{
				int cnt = 0;
				int[] tmp = new int[1010];
				System.out.print(i+" its factors are ");
				for(int j = 1; j < i; j++)
				{
					if(i%j==0)
						tmp[++cnt] = j;
				}
				for(int j = 1; j < cnt; j++)
					System.out.print(tmp[j]+",");
				System.out.println(tmp[cnt]);
			}
		}
	}
	public boolean check(int n)
	{
		int sum = 1;
		for(int i = 2; i < n; i++)
		{
			if(n%i==0)
				sum += i;
		}
		if(sum==n)
			return true;
		return false;
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值