任意输入一个整数,求离它最近的素数

来源:百度知道 编辑:UC知道 时间:2024/05/14 07:04:06
用C程序实现

/*输入一个数,求出离他最近的素数*/
#include<stdio.h>
#include<math.h>

void main()
{
/*判断一个数是否为素数*/
int is_prime(int n);
int n;
int min_prime ;/*比他小的最近的素数*/
int max_prime ;/*他大的最近的素数*/
int count ;
printf("请输入一个数:");
scanf( "%d", &n );

/*求出比他小的最近的素数*/
for( count = n ; count >= 2 ; count --)
if( is_prime(count) )
{
min_prime = count ;
break ;
}
/*求出比他大的最近的素数*/
for(count = n + 1 ; ; count ++)
if( is_prime( count ) )
{
max_prime = count ;
break;
}

/*判断比他大的最近素数和比他小的最近素数哪个离该数最近*/
if( fabs( min_prime- n ) < fabs( max_prime- n ))
printf("离他最近的素数是:%d",min_prime);
else if( fabs( min_prime - n ) == fabs( max_prime - n ) )
printf("离他最近的素数是:%d和%d",min_prime,max_prime);
else
printf("离他最近的素数是:%d",max_prime);