0


C语言实现求n以内最大的k个素数c

以下是C语言实现求n以内最大的k个素数的代码:

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

bool is_prime(int num){// 判断素数int i;if(num <2){return false;}for(i =2; i <=sqrt(num); i++){if(num % i ==0){return false;}}return true;}voidfind_k_primes(int n,int k){// 查找最大的k个素数int i, count =0, max_prime =0;for(i =2; i <= n; i++){if(is_prime(i)){// 如果是素数,则更新最大素数和素数个数if(i > max_prime){
                max_prime = i;}
            count++;if(count == k){break;// 已经找到k个素数,直接跳出循环}}}if(count < k){// 如果没有找到k个素数,则输出所有素数printf("There are only %d prime numbers less than or equal to %d: \n", count, n);for(i =2; i <= n; i++){if(is_prime(i)){printf("%d ", i);}}}else{// 找到了k个素数,则输出最大的k个素数printf("The largest %d prime numbers less than or equal to %d are: \n", k, n);for(i = max_prime; i >= max_prime - k +1; i--){while(!is_prime(i)){// 如果当前数不是素数,则向前搜索
                i--;}printf("%d ", i);}}}intmain(){int n, k;printf("Please enter n and k: \n");scanf("%d%d",&n,&k);find_k_primes(n, k);return0;}

在该代码中,我们先定义了一个判断素数的函数

is_prime

,然后在

find_k_primes

函数中查找最大的k个素数。在查找的过程中,我们使用了一个计数器

count

,记录已经找到的素数个数,以及一个变量

max_prime

,记录已经找到的最大素数。当找到k个素数时,我们直接跳出循环;当没有找到k个素数时,我们输出所有的素数。

最后在

main

函数中,我们从输入获取n和k,并调用find_k_primes函数来查找最大的k个素数。


本文转载自: https://blog.csdn.net/z2953110z/article/details/134554224
版权归原作者 MaxZhang666666 所有, 如有侵权,请联系我们删除。

“C语言实现求n以内最大的k个素数c”的评论:

还没有评论