天天看點

北郵OJ 163 非平方等式

北郵OJ 非平方等式

北郵OJ 163 非平方等式
#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);
}