输入正整数n,请告诉大家1~n(包含n)之间有多少个完美数。
完美数是其因子(不包括自身)之和恰好等于自身的数。例如:6=1+2+3 就是完美数。
输入正整数n (1 <= n <= 10000000000)
输出完美数个数
#输入1
10
#输出1
1
解释:1~10之间的完美数只有6。
1 <= n <= 10000000000
要通过最后一个测试点,可使用下面数学性质:
如果 2^p-1 为素数,那么 (2^p-1)*(2^{p-1}) 为完美数