北邮OJ 非平方等式
#include <bits/stdc++.h>
using namespace std;
long long S(long long x){
long long sum=0;
while(x!=0){
sum=sum+x%10;
x=x/10;
}
return sum;
}
int main(){
long long n;
long long flag=0;
cin>>n;
for(long long i=(sqrt(n)-162)>0?(sqrt(n)-162):1;i<sqrt(n);i++){
if((i*i+i*S(i))==n){
flag=i;
break;
}
}
if(flag==0)
printf("-1");
else
printf("%d",flag);
}