d010:盈數、虧數和完全數
阿新 • • 發佈:2017-08-03
定義 它的 number pre code 如果 題目 == names
題目:
對一個正整數N而言,將它除了本身以外所有的因子加起來的總和為S,如果S>N,則N為盈數,如果S<N,則N為虧數,而如果S=N,則N為完全數(Perfect Number)。例如10的因子有1、2、5、10,1 +2+5=8<10,因此10為虧數,而12的因子有1、2、3、4、6、12,1+2+3+4+6=16>12,因此12為盈數。至於6的因子有1、2、3、6,1+2+3=6,所以6是完全數(它也是第一個完全數)。
現在請你寫一個程序,輸入一個正整數N,然後印出它是盈數、虧數還是完全數。
所以,這題的思路是:定義s=0.
把這個數和所有小於它的數mod,是0的話s=s+i.
代碼:
1 #include <iostream> 2 using namespace std; 3 int main(){ 4 int a,i=1; 5 while(cin>>a){ 6 int s=0; 7 for(i=1;i<a;i++){ 8 if(a%i==0) s+=i; 9 } 10 if(s<i) cout<<"虧數"<<endl; 11 if(s==i) cout<<"完全數"<<endl;12 if(s>i) cout<<"盈數"<<endl; 13 } 14 return 0; 15 }
d010:盈數、虧數和完全數