-
[c언어] N의 약수가 주어질 때 N 값 구하는 프로그램Computer Science/알고리즘 2020. 8. 25. 23:19
문제:
양수 A가 N의 진짜 약수가 되려면, N이 A의 배수이고,
A가 1과 N이 아니어야 한다. 어떤 수 N의 진짜 약수가 모두 주어질 때,
N을 구하는 프로그램을 구현하라.source: m2.c
#include
#include //malloc 함수가 선언된 헤더파일int *divisor; //divisor 포인터 선언
int compare(const void *a, const void *b) { //비교하는 함수
return (*(int*)a - *(int*)b);
}int main() {
int N;
scanf("%d", &N); //N을 입력받음
divisor = malloc(sizeof(int)*N); //int 크기 4바이트만큼 동적 메모리 할당for (int i = 0; i < N; i++) {
int tmp;
scanf("%d", &tmp); //0부터 N-1번까지 반복해서 입력받음
divisor[i] = tmp; //divisor 동적 메모리에 저장
}qsort(divisor, N, sizeof(int), compare);
//빠른 정렬 알고리즘
//매개변수: (정렬할 배열, 배열의 원소 개수, 배열 한 칸 크기, 비교를 수행할 함수 포인터)int answer = divisor[0] * divisor[N - 1];
printf("%d\n", answer); //N값을 화면에 출력return 0; //종료
}'Computer Science > 알고리즘' 카테고리의 다른 글
[c] 에라토스테네스의 체로 소수 찾는 프로그램 (0) 2021.09.22 [기초] Map과 HashMap의 차이 (0) 2021.08.02 [정렬 알고리즘] 숫자 애너그램 찾기 (0) 2020.08.25 포인터를 사용하여 2차원 배열 데이터 접근하기 (0) 2020.08.25 알고리즘의 시간 복잡도 총 정리 (0) 2020.08.16