728x90
반응형
문제 : http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=1174&sca=2040
문제
소수(prime number)란 2이상의 수로써 1과 자기 자신 외에는 약수를 갖지 않는 수를 의미한다.
임의의 M값에 대하여 M에 가장 가까운 소수를 구하는 프로그램을 아래 조건에 따라 작성한다.
# 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
반응형
최근댓글