//AC 心得:思考题目要求,寻找好合适的条件。
#include<stdio.h>
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
int n,i;
int a=0;
scanf("%d",&n);
for(i=1;(i+1)*(i+1)<=n+1;i++)//数学平方数理想化
{
if((n+1)%(i+1)==0)//i*j+i+j =N 经过观察,可以变形为i*j+i+j+1=N+1,也就是说,可以进一步变形为(i+1)*(j+1)=N+1;
a=a+1;//由于要满足i<=j;
}
printf("%d\n",a);
}
return 0;
}
时间: 2024-11-05 13:39:19