今天來寫寫看 UVA13185: DPA Numbers I
題目簡單來說就是輸入數字並與因數總和(不含該數本身)比較
總和大於數字就是 abundant
總和等於數字就是 perfect
總和小於數字就是 deficient
#include <stdio.h>
int main(){
int n;
scanf("%d",&n);
int i;
for(i=0;i<n;i++){
int num;
scanf("%d",&num);
int sum=1,max=num; //定義sum(加總)、max(需要判斷的最大值)
int ii;
for(ii=2;ii<max;ii++){
if(num%ii==0){ //如果是因數就...
if(ii == (num/ii)){
sum += ii;
}
else{
sum += ii + (num/ii);
}
max = num/ii; //重新調整最大值
}
}
if(sum > num){
printf("abundant\n");
}
else if(sum == num){
printf("perfect\n");
}
else{
printf("deficient\n");
}
}
return 0;
}