C:도전프로그래밍1

aiden·2023년 3월 30일
0

C

목록 보기
9/28

#3

두개의 정수를 입력받아 GCD(Greatest Common Divisor)를 구하라.

풀이 1) 반복문 이용

#include <stdio.h>
void GCD(int num1, int num2);

int main(void) {
	int num1, num2;

	printf("두 수를 입력하시오 : ");
	scanf("%d %d", &num1, &num2);

	GCD(num1, num2);

	return 0;
}

void GCD(int num1, int num2) {
	int a, b, remainder = 1;
	if (num1 > num2)
		a = num1, b = num2;
	else
		a = num2, b = num1;
	while (remainder != 0) {
		remainder = a % b;
		a = b;
		b = remainder;
	}
	printf("최대 공약수는 %d", a);
}

풀이 2) 재귀함수 이용

#include <stdio.h>
void GCD(int num1, int num2);

int main(void) {
	int num1, num2;

	printf("두 수를 입력하시오 : ");
	scanf("%d %d", &num1, &num2);

	if (num1 > num2)
		GCD(num1, num2);
	else
		GCD(num2, num1);
	

	return 0;
}

void GCD(int num1, int num2) {
	int remainder = num1 % num2;
	if (remainder != 0)
		GCD(num2, remainder);
	else
		printf("최대 공약수는 %d", num2);
}

#5

작은 수부터 차례로 10개의 소수를 출력하는 프로그램을 작성하라. (2, 3, 5, 7, 11, 13, 17, 19, 23, 29)

#include <stdio.h>
int PrimeNumber(int num);

int main(void) {
	int i = 2, printed = 0, result;

	while (printed < 10) {
		result = PrimeNumber(i);
		if (result == 1) {
			printf("%d ", i);
			printed++;
		}
		i++;
	}
	return 0;
}

int PrimeNumber(int num) {
	for (int i = 2; i < num; i++){
		if (num % i == 0)
			return 0;
	}
	return 1;
}

2 3 5 7 11 13 17 19 23 29

profile
파인애플 좋아하세요?

0개의 댓글