完全数(perfect number)是一些特殊的自然整数。完全数等于其所有因子的和,这里所谓的因子就是所有可以整除这个数的数,而不包括该数本身。其实谈到完全数,与之相关的两个概念是亏数和赢数。一般来说,通过气所有真一字的和判断一个自然数是亏数、赢数以及完全数。
我们来举几个典型的完全数的例子:
代码如下:
当一个自然数的所有真因子之和小于该自然数时,那么该自然数便是亏数;
当一个自然数的所有真因子之和大于该自然数时,那么该自然数便是赢数;
当一个自然数的所有真因子之和等于该自然数时,那么该自然数便是完全数;
我们来举几个典型的完全数的例子:
6=1+2+3
28=1+2+4+7+14
496=1+2+4+8+16+31+62+124+248
代码如下:
import java.util.Scanner;
public class PerfectNumber {
/**
* @param args
*/
static void isPerfectNumber(int para)
{
int sum=0;
String str="1";
for(int i=1;i<para;i++)
{
if((para%i)==0)
{
sum+=i;
if(i>=2)
{
str=str+"+"+i;
}
}
}
if(para==sum)
{
System.out.println(para+"是一个完全数!");
System.out.println("其因子为:"+para+"="+str);
}else
{
System.out.println(para+"不是一个完全数!");
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int flag;
int para;
do{
System.out.print("请输入需要判断的数:");
Scanner input = new Scanner(System.in);
para=input.nextInt();
isPerfectNumber(para);
System.out.print("输入1继续进行判断,输入0结束!");
flag=input.nextInt();
}while(flag==1);
System.out.print("判断结束!");
}
}