M ~ N 사이에 존재하는 완전 제곱수를 찾아 수의 합과 최소값을 출력하자.
완전제곱수의 개념만 알면 쉽다. 최적화도 가능하지만 최대 범위가 100 이기 때문에 1부터 진행하자.
1부터 제곱 했을때 M ~ N 사이에 있다면 합에 더하고 최소값을 갱신한다.
#include <iostream>
using namespace std;
int main()
{
int m, n;
int resMax = 0, res = -1;
cin >> m >> n;
for (int i = 1; i <= 100; i++)
{
int pow = i * i;
if (pow < m)
continue;
if (res == -1)
res = pow;
if (pow > n)
break;
resMax += pow;
}
if (resMax == 0)
cout << -1;
else
cout << resMax << '\n' << res;
return 0;
}
2019-04-01 00:42:20에 Tistory에서 작성되었습니다.