思路: i * j + i + j------> (i + 1) * (j + 1) = N+1----> 2 <= i+1 <= sqrt(N+1); (0 < i <= j)
CODE:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
using namespace std;
int main()
{
int T;
scanf("%d", &T);
while(T--)
{
int i, j;
__int64 N;
int cnt = 0;
scanf("%I64d", &N);
++N;
int m = int(sqrt(N));
for(i = 2; i <= m; i++)
{
if(N % i == 0) cnt++;
}
printf("%d\n", cnt);
}
return 0;
}
#include <stdlib.h>
#include <string.h>
#include <math.h>
using namespace std;
int main()
{
int T;
scanf("%d", &T);
while(T--)
{
int i, j;
__int64 N;
int cnt = 0;
scanf("%I64d", &N);
++N;
int m = int(sqrt(N));
for(i = 2; i <= m; i++)
{
if(N % i == 0) cnt++;
}
printf("%d\n", cnt);
}
return 0;
}