Programming
[2주차] 백준 1037번: 약수_C++
mnzy🌱
2022. 4. 4. 01:39
백준 1037: 약수
https://www.acmicpc.net/problem/1037
1037번: 약수
첫째 줄에 N의 진짜 약수의 개수가 주어진다. 이 개수는 50보다 작거나 같은 자연수이다. 둘째 줄에는 N의 진짜 약수가 주어진다. 1,000,000보다 작거나 같고, 2보다 크거나 같은 자연수이고, 중복되
www.acmicpc.net
- 어떤 N의 약수의 개수와 약수들을 입력하면
- N을 출력해준다
#include <iostream>
using namespace std;
#define MAX 50
int num;
int s = 0;
int maxNum, minNum;
int arr[MAX];
void func(int x) {
for (int i = 0; i < x; i++) {
cin >> arr[i];
s++;
}
maxNum = arr[0];
for (int i = 0; i < s; i++) {
if (arr[i] > maxNum) {
maxNum = arr[i];
}
}
minNum = arr[0];
for (int i = 0; i < s; i++) {
if (arr[i] < minNum) {
minNum = arr[i];
}
}
cout << maxNum * minNum << endl;
}
int main() {
cin >> num;
func(num);
}
- 약수의 개수를 입력받고(num), 개수만큼 반복문을 돌려 배열(arr[i])에 약수들을 넣어준다.
- 약수들 중 제일 큰 수와 제일 작은 수를 곱하면 N이 나온다
* 제일 큰 수와 제일 작은 수를 곱해야 한다는 아이디어를 생각하는 것이 제일 중요하다
이번 문제는 쉬워서 별 고민없이 잘 풀었던 것 같다!