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

+ Recent posts