반응형
https://www.acmicpc.net/problem/1037
1037번: 약수
첫째 줄에 N의 진짜 약수의 개수가 주어진다. 이 개수는 50보다 작거나 같은 자연수이다. 둘째 줄에는 N의 진짜 약수가 주어진다. 1,000,000보다 작거나 같고, 2보다 크거나 같은 자연수이고, 중복되�
www.acmicpc.net
입력
첫째 줄에 N의 진짜 약수의 개수가 주어진다. 이 개수는 50보다 작거나 같은 자연수이다. 둘째 줄에는 N의 진짜 약수가 주어진다. 1,000,000보다 작거나 같고, 2보다 크거나 같은 자연수이고, 중복되지 않는다.
출력
첫째 줄에 N을 출력한다. N은 항상 32비트 부호있는 정수로 표현할 수 있다.
풀이
쉬운 문제로써 해당 1과 N이 아닌 약수들의 집합 중
최솟값과 최댓값을 곱한 숫자가 N이다
예를 들어
8 -> (1, 2, 4 ,8)
12 -> (1,2, 3, 4, 6. 12)
24 -> (1, 2, 3, 4, 6, 8, 12, 24)
....
입력에서 N은 2보다 크다고 했으므로 추가 조건(특이 케이스 N이 1일 때)을 고려하지 않았다.
include<stdio.h>
#include<math.h>
using namespace std;
int main() {
int Num=0;
int min=1000000;
int max=0;
int NumArray[50];
scanf("%d", &Num);
int result = 0;
for (int i = 0; i < Num; i++) {
int temp = 0;
scanf("%d", &temp);
if (max < temp) {
max = temp;
}
if (min > temp) {
min = temp;
}
}
//printf("max: %d, min : %d\n", max, min);
result = max * min;
// 2 (1,2)
// 4 (1,2,4)
// 6 (1,2,3,6)
// 8 (1,2,4,8)
// 9 (1,3,9)
// 10(1,2,5,10)
// 12(1,2,3,6,12)
// 14(1,2,7,14)
// 15(1,3,5,15)
// 16(1,2,4,8,16)
// 18(1,2,3,9,18)
// 20(1,2,4,5,10,20)
// 21(1,3,7,21)
// 22(1,2,11,22)
// 24(1,2,3,4,6,8,12,24)
// 25(1,5,25)
// 26(1,2,13,26)
// 27(1,3,9,27)
// 28(1,2,4,7,14,28)
// 30(1,3,10,30)
// 32(1,2,4,8,16,32)
// 33(1,3,11,33)
// 34(1,2,17,34)
// 35(1,5,7,35)
// 36(1,2,3,4,6,9,12,18,36)
// 38(1,2,19,38)
// 39(1,3,13,39)
// 40(1,2,4,5,8,20,40)
printf("%d\n", result);
}
반응형
'알고리즘 문제 > 백준' 카테고리의 다른 글
[백준 알고리즘] 1149번 : RGP거리 (0) | 2020.08.05 |
---|---|
[백준 알고리즘] 1065번 한수 (0) | 2020.08.04 |
[백준 알고리즘] 1026번 보물 (0) | 2020.08.01 |
[백준 알고리즘] 1012번 유기농 배추 (0) | 2020.07.31 |
[백준 알고리즘] 1010번 다리 놓기 (0) | 2020.07.31 |
댓글