函数原型为:int fun(int n);根据下面的说明,编写该函数。 (1)函数功能:求最小素数。 (2)入口参数:函数形参n>=2。 (3)出口值: 函数返回值是比n大的最小素数。

函数原型为:int fun(int n);根据下面的说明,编写该函数。
(1)函数功能:求最小素数。
(2)入口参数:函数形参n>=2。
(3)出口值: 函数返回值是比n大的最小素数。

一个实现,供参考:

#include <stdio.h>
#include <math.h>
int fun(int n){
    
    if(n<2){  //如果n比2小,则输出-1,标识参数不合格 
        return -1;
    }
    
    int i,k;
    int find=0; //寻找标志,0未没有找到比n大的最小素数,1为找到了 
    int prime=1;  //素数标志,0为非素数,1为素数 
    while(find==0){  //如果没有找到,就一直执行查找操作 
        
        for(i=n+1;;i++){  //从比n大1的数开始查找,直到直到找到 
            
            for(k=2;k<=(int)sqrt(i);k++){  //判断当前i是否为素数 
                
                if(i%k==0){ //如果不是素数,把素数标志置0,表示不是素数,然后break跳出循环开始下一个数的判断 
                    prime=0; 
                    break;
                }
            }
            if(prime==1){  //如果判断完,是素数,则返回这个i的值,他就是比n大的最小素数 
                return i;
            }else{  //如果不是素数,则把素数标志重新置1,表示默认是素数,直到下次循环里判断出他不是素数 
                prime=1;
                continue;  //开始一个数的判断 
            }
                        
        }
        
    } 
    
} 


int main(void){
    
    int n;
    printf("请输入一个整数,程序将求比它大的最小素数:");
    scanf("%d",&n);
    
    int result = fun(n);
    if(result!=-1){
        printf("比%d大的最小素数是:%d.\n",n,result);
    }else{
        printf("请输入一个大于等于2的数。\n");
    }

    
    return 0;
}

img