一个整数T(10<=T<=1000000000)。
输出
每个整数T对应一行输出,如果是ADA Ⅲ型数,则输出一行YES,否则输出一行NO。
样例输入 Copy
81
样例输出 Copy
YES
#include<stdio.h>
#include<math.h>
int main(void)
{int n;scanf("%d",&n);int m=n;int t=0;//871while(m!=0){t++;m/=10;}int qian;int hou;int wei;int flag=0;for(int i=1;i<t;i++){wei=pow(10,i);qian=n/wei;hou=n%wei;if((int)pow((qian+hou),2)==n)//不能直接pow==n,因为pow计算结果是浮点型数{//由于精度问题比较存在问题flag=1;break;} }if(flag==1){printf("YES");}else{printf("NO");}
}