728x90
반응형

문제 : http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=1174&sca=2040

 

JUNGOL

 

www.jungol.co.kr

문제

소수(prime number)란 2이상의 수로써 1과 자기 자신 외에는 약수를 갖지 않는 수를 의미한다.

임의의 M값에 대하여 M에 가장 가까운 소수를 구하는 프로그램을 아래 조건에 따라 작성한다.

 

[그림1] 입 출력 형식

 

[그림2] 입 출력 예제

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

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

void print(int num)
{	
	int i,flag = 0;
	
	if(prime(num))
	{
		printf("%d\n",num);
		return;
	}
	
	for(i = 1; !flag; i++)
	{
		if(prime(num-i))
		{	
			flag++;
			printf("%d ",num-i);
		}
		if(prime(num+i))
		{
			flag++;
			printf("%d ",num+i);
			
		}
	}
	printf("\n");
}

int main()
{
	int i,n,m;
	
	scanf("%d",&n);
	
	for(i = 0; i<n; i++)
	{
		scanf("%d",&m);
		print(m);
	}
	
	return 0;
	
}
728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기