반응형
✔︎ 미션 2 (난이도 : 하)
1. 미션 제목
N 의 약수들
2. 지시문
양수 A가 N의 진짜 약수가 되려면, N이 A의 배수이고, A가 1과 N이 아니어야 한다. 어떤 수 N의 진짜 약수가 모두 주어질 때, N을 구하는 프로그램을 아래와 같이 구현했다.
*아래 주석 부분을 채워 주세요.
#include <stdio.h>
#include <stdlib.h>
int *divisor;
int
compare(const void * a, const void * b)
{
return (*(int*)a - *(int*)b);
}
int
main()
{
int N;
scanf("%d", &N);
divisor = malloc(sizeof(int) * N);
for(int i = 0; i < N; i++){
int tmp;
scanf("%d", &tmp);
divisor[i] = tmp;
}
qsort(divisor, N, sizeof(int), compare);
int answer = /**여기를 채우세요.**/;
printf("%d\n", answer);
return 0;
}
3. 핵심 개념
#약수 #정렬
4. 부가 설명
- 약수: https://en.wikipedia.org/wiki/Divisor
- 정렬: http://www.cplusplus.com/reference/cstdlib/qsort/
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
int *divisor; //숫자N의 약수들이 담긴 int 배열
int compare(const void * a, const void * b)
{
return (*(int*)a - *(int*)b);
}
int result(int N){
int Num = 4; //답은 최소 4부터 가능.
bool check = false;
bool check2 = false;
while(check == false){
for(int i = 0; i < N; i++){
if(Num % divisor[i] == 0 && Num != divisor[i]){
check2 = true;
}else{
Num++;
check2 = false;
break;
}
}
if(check2 == true){
check = true;
}
}
return Num;
}
int main() {
int N; //숫자N의 약수의 개수
scanf("%d", &N);
divisor = malloc(sizeof(int) * N);
for(int i = 0; i < N; i++){
int tmp;
scanf("%d", &tmp); //숫자N의 약수들을 모두 받아옴
divisor[i] = tmp;
}
qsort(divisor, N, sizeof(int), compare);
int answer = result(N);
printf("%d\n", answer);
return 0;
}
반응형
'Education' 카테고리의 다른 글
[제주코딩베이스캠프] 웹개발 30분 요약 - 8. 30분 요약시리즈 - JS 2부 (0) | 2020.08.22 |
---|---|
[제주코딩베이스캠프] 웹개발 30분 요약 - 7. 30분 요약시리즈 - JS 1부 (0) | 2020.08.22 |
[부스트 코딩 뉴비 챌린지 2020] week6_LIVE 강의 (0) | 2020.08.21 |
[제주코딩베이스캠프] 웹개발 30분 요약 - 6. 30분 요약시리즈 - CSS (0) | 2020.08.19 |
[부스트 코딩 뉴비 챌린지 2020] C언어: %p와 %x의 차이점은? (0) | 2020.08.18 |