본문 바로가기

C 언어/연습문제

C언어 연습문제2

[문제]

10개의 소수(Prime Number)를 출력하는 프로그램을 작성해 보자. 참고로 정수 num이 1과 num으로 밖에 나눠지지 않는다면 이는 소수에 해당한다.

조건1) 소수를 판단하는 함수 IsPrime()을 만들 것

 

[실행결과]

2 3 5 7 11 13 17 19 23 29

 

[코드1]

#include<stdio.h>

int IsPrime(int n);

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

	while(cnt!=10)
	{
		if(IsPrime(i)==1)
		{
			printf("%d ", i);
			cnt++;
		}
		i++;
	}
	return 0;
}

int IsPrime(int n)	   // 소수면 true(1) 리턴
{
	int divisors=0, i;
	
	for(i=1; i<=n; i++)
	{
		if(n%i==0)
			divisors++;
	}

	if(divisors==2)
		return 1;

	return 0;
}

[코드2]

#include<stdio.h>
#include<stdbool.h>

bool IsPrime(int num);

int main()
{
	int i;
	int cnt = 0, num = 2;

	while (cnt != 10)
	{
		if (IsPrime(num) == true)
		{
			printf("%d ", num);
			cnt++;
		}
		num++;
	}

	return 0;
}

bool IsPrime(int num)
{
	int i;
	int divisor = 0;
	bool res = false;

	for (i = 1; i <= num; i++)
		if (num % i == 0)	divisor++;

	if (divisor == 2)	res = true;
	
	return res;
}

<참고>

윤성우의 열혈 C 프로그래밍

'C 언어 > 연습문제' 카테고리의 다른 글

C언어 연습문제6  (0) 2021.11.10
C언어 연습문제5  (0) 2021.11.05
C언어 연습문제4  (2) 2021.10.26
C언어 연습문제3  (0) 2021.10.26
C언어 연습문제1  (0) 2021.10.25