2016年5月12日 星期四

UVA 382: Perfection

Q382: Perfection

一個整數b如果可以被另一個整數a整除(在這裡a>b),我們稱b是a的一個因數。
Perfect Number是一個正整數並且等於其所有因數的和。例如:6和28都是perfect number。因為6=1+2+3,28=1+2+4+7+14。如果一個正整數不是perfect,那他就是deficient或者是abundant,根據其所有因數的和是小於或大於這個數本身。因此,9是deficient因為1+3<9。而12是abundant因為1+2+3+4+6>12。
請寫一個程式求出某一個數是perfect, deficient 或者abundant。
Input
有一連串(不會超過100個)的正整數n(1 <= n < 60000),n=0代表輸入結束。
Output
請參考 Sample Output。
數字部分佔5個字元長度,靠右對齊。與後方的敘述間空2個空白格。
Sample Input
15 28 6 56 60000 22 496 0
Sample Output
PERFECTION OUTPUT
   15  DEFICIENT
   28  PERFECT
    6  PERFECT
   56  ABUNDANT
60000  ABUNDANT
   22  DEFICIENT
  496  PERFECT
END OF OUTPUT
 

import java.util.Scanner;

public class UVA_382 {

public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n;
System.out.println("PERFECTION OUTPUT");
while((n=sc.nextInt())!=0){
long total=0;
for(int i=1;i<n;i++){
if(n%i==0)
total+=i;
}
if(total==n)
System.out.printf("%5d  PERFECT\n",n);
else if(total>n)
System.out.printf("%5d  ABUNDANT\n",n);
else
System.out.printf("%5d  DEFICIENT\n",n);
}
if(n==0)
System.out.println("END OF OUTPUT");
}

}

沒有留言:

張貼留言