题意
给你一个
,让你找
这样
的对数。
思路:
N的范围比较大,1e10,暴力肯定超时。
如果只枚举一个的话,那就太好了。
即
这样我们就可以在
复杂度下找出所有对数。
#include<cstdio>
#include<cmath>
#include<iostream>
using namespace std;
#define ll long long
const int N = 1e6+10 ;
int main(){
int t;
cin >> t;
while(t--){
ll n;
scanf("%lld",&n);
ll sum = 0;
for(ll i = 1;i <= sqrt(n) + 1;++i){
if((n+1) % (i + 1) == 0) {
ll k = (n+1) / (i + 1);
if((k - 1) >= i) sum ++;
// cout<<i<<' '<<k-1<<endl;
}
}
printf("%lld\n",sum);
}
}