본문 바로가기
정올 문제풀이

정올 2809 : 약수 + 버블정렬

by watergrace2u 2020. 4. 27.
반응형
SMALL

 

- 버블정렬시 이차원 배열 사용 주의

 - 처음부터 끝까지 확인하면 시간이 오래걸리므로 제곱근 사용

 - 마지막 출력시 겹치는 부분 고려

#include <stdio.h>
#include <math.h>

void printArr(int a[],int count) {
	for (int i = 0; i < count; i++) {
		if (a[i] != a[i + 1]) {
			printf("%d ",a[i]);
		}
	}
}

void bubbleSort(int* a, int count) {
	int tmp=0;
	for (int i = 0; i < count-1; i++) {
		for (int j = 0; j < count - 1 - i; j++) {
			if (a[j] > a[j + 1]) {
				tmp = a[j];
				a[j] = a[j + 1];
				a[j + 1] = tmp;
			}
		}
	}

}

int main() {
	int n;
	scanf("%d", &n);
	int arr[10000]; // 약수 저장할 배열
	int count = 0;
	
	for (int i = 1; i <= sqrt(n); i++) {
		if (n % i == 0) {
			arr[count++] = i;
			arr[count++] = n / i;
		}
	}

	bubbleSort(arr,count);

	printArr(arr,count);

}
반응형
LIST

댓글