#include <iostream> using namespace std; int main(){ int n; while(cin >> n){ int count=0; for(int i=6;i<=n;i++){ int temp=0; for(int j=1;j<i;j++){//注意j<n,因为求和时不算这个数的自身 if(i%j==0) temp+=j; } if(temp==i) count++; } cout << count << endl; } return 0; }
#一样的解法,python的劣势就凸显出来了,复杂度过大;看了其他人的解法......只能说很骚,但没有意义 while True: try: n=int(input()) count=0 for i in range(6,n+1): temp=0 for j in range(1,i): if i%j==0: temp+=j if temp==i: count+=1 print(count) except: break