NYOJ题目216 A problem is easy

//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 ",a);
}
return 0;
}

原文地址:https://www.cnblogs.com/hys1258414454/p/7230238.html