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
'알고리즘 문제' 카테고리의 다른 글
[백준] 11403번 경로 찾기 (0) | 2020.02.07 |
---|---|
[백준] 11404번 플로이드 (0) | 2020.02.07 |
[백준] 2163번 초콜릿 자르기 (0) | 2020.02.07 |
[백준] 1037번 약수 (0) | 2020.02.07 |
[백준] 1094번 막대기 (0) | 2020.02.07 |