백준1977 완전제곱수

#include <iostream>
#define max_size 9

using namespace std;

/*

89011483755109777
은 완전제곱수가 아닌데도 제곱근이 정수로 출력되는 것을 볼 수 있다. 소숫점 이하가 아주 작을 경우 버림을 해버리기 때문에 발생하는 일이다. 따라서 이것만으로는 완전제곱수인지 판단하기 어려우므로, 제곱근을 다시 제곱해서 원래의 수가 나오는지 확인해야 한다.

*/
int main()
{
	int m, n;
	cin >> m >> n;
	int s = 0,mm=10001;
	for (int i = m; i <= n; i++)
	{
		if (pow(int(pow(i, 0.5)), 2) == i)
		{
			s += i;
			
			if (mm > i)
				mm = i;
		}
	}
	
	if (s == 0)
		cout << -1;
	else
	{
		cout << s << endl << mm;
	}
	return 0;
}