알고리즘 문제
[백준] 1977번 완전제곱수
feelcoding
2020. 2. 7. 12:43
728x90
1977번: 완전제곱수
M과 N이 주어질 때 M이상 N이하의 자연수 중 완전제곱수인 것을 모두 골라 그 합을 구하고 그 중 최솟값을 찾는 프로그램을 작성하시오. 예를 들어 M=60, N=100인 경우 60이상 100이하의 자연수 중 완전제곱수는 64, 81, 100 이렇게 총 3개가 있으므로 그 합은 245가 되고 이 중 최솟값은 64가 된다.
www.acmicpc.net
#include <iostream>
#include <tuple>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int arr[100];
int m, n;
cin >> m >> n;
for (int i = 0; i < 100; i++) {
arr[i] = (i + 1) * (i + 1);
}
int count = 0;
long long sum = 0;
int minNum;
for (int i = 0; i < 100; i++) {
if (arr[i] >= m && arr[i] <= n) {
count++;
sum += arr[i];
if (count == 1) {
minNum = arr[i];
}
}
}
if (count == 0) cout << -1;
else {
cout << sum << endl;
cout << minNum;
}
return 0;
}
728x90