끄적끄적 코딩
article thumbnail

M~N사이의 완전제곱수를 구하는 문제입니다.

0부터 차례대로 제곱을 하여 M~N사이면
벡터에 넣어주고 sum에 더해줍니다.

N을 넘으면 반복문을 나가고,
벡터의 사이즈가 0이면  -1을 출력하고
그렇지 않으면 sum과 vector의 첫번째 값을 출력합니다.

 

#include <iostream>
#include <cstring>
#include <string>
#include <algorithm>
#include <vector>
#include <cmath>
using namespace std;

int main(int argc, char* argv[])
{
	int m, n;
	int i = 0;
	int num = 0;
	int sum = 0;
	vector<int> v;

	cin >> m >> n;

	while (1) {
		num = pow(i, 2);
		if (num > n) {
			break;
		}
		if (num >= m) {
			v.push_back(num);
			sum += num;
		}
		++i;
	}

	if (v.size() == 0) {
		cout << "-1" << endl;
	}
	else {
		cout << sum << endl;
		cout << v[0] << endl;
	}

	return 0;
}

'알고리즘' 카테고리의 다른 글

[C++] 백준 2468번 안전 영역  (0) 2019.09.13
[C++] 백준 1057번 토너먼트  (0) 2019.09.13
[C++] 백준 1076번 저항  (0) 2019.09.13
[C++] 백준 2010번 플러그  (0) 2019.09.13
[C++] 백준 1094번 막대기  (0) 2019.09.13

검색 태그