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

这篇具有很好参考价值的文章主要介绍了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;
}

void find_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);
        }
    }
}

int main() {
    int n, k;
    printf("Please enter n and k: \n");
    scanf("%d%d", &n, &k);
    find_k_primes(n, k);
    return 0;
}

在该代码中,我们先定义了一个判断素数的函数 is_prime,然后在 find_k_primes 函数中查找最大的k个素数。在查找的过程中,我们使用了一个计数器 count,记录已经找到的素数个数,以及一个变量 max_prime,记录已经找到的最大素数。当找到k个素数时,我们直接跳出循环;当没有找到k个素数时,我们输出所有的素数。

最后在 main 函数中,我们从输入获取n和k,并调用find_k_primes函数来查找最大的k个素数。文章来源地址https://www.toymoban.com/news/detail-758284.html

到了这里,关于C语言实现求n以内最大的k个素数c的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java输入任意正整数,判断其以内所有的素数(1000以内的所有素数)

    * 思路1: * 从约数的角度出发 * 5的约数为1,5,和为6 * 13的约数为1,13,和为14 * 17的约数为1,17,和为18 * 18的约数为1,2,3,6,9,18,,和为39 * 所以如果约数的和==i+1;则为素数,否则为偶数 * * 思路2: * 判断约数个数是否大约2 * 2的约数为1,2   约数个数为2 * 11的约数为1,11   约数个

    2023年04月08日
    浏览(43)
  • 使用筛选法求出 n 以内的素数

    输入描述: 多组输入,每行输入一个正整数(不大于100)。 输出描述: 针对每行输入的整数n,输出两行,第一行,输出n之内(包括n)的素数,用空格分隔, 第二行,输出数组中2之后被清0 的个数。每行输出后换行 筛选法求解过程为:将2~n之间的正整数放在数组内存储,

    2024年02月13日
    浏览(75)
  • 求1000以内所有素数并输出的几种方法

    今天咱们来点不一样的,来看一下这样的一道题目,他要求我们把1-1000的素数全部找到并且输出 那我们先要了解什么是素数, 所谓素数,就是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数 。而合数则恰巧与素数相反,是指在大于1的整数中除了能被1和本

    2024年02月06日
    浏览(53)
  • python123输出N以内的所有素数&哥德巴赫猜想&扑克牌游戏

    描述 ‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬ 编程找出N(即小

    2023年04月18日
    浏览(39)
  • [Go版]算法通关村第十三关黄金——数字数学问题之数论问题(最大公约数、素数、埃氏筛、丑数)

    题目链接:LeetCode-1979. 找出数组的最大公约数 辗转相除法其核心部分为:若r 是a ÷ b的余数,则 gcd(a, b)=gcd(b, r) 题目链接:LeetCode-204. 计数质数 如果 x 是质数,那么大于 x 的 x 的倍数 2x,3x,… 一定不是质数。 时间复杂度分析: 外层循环的迭代次数是 n-2,即 O ( n ) O(n) O ( n ) 次

    2024年02月11日
    浏览(38)
  • Hlang--用Python写个编程语言-函数与基本数据结构实现

    okey,经过一段时间的努力,接下来要实现的是函数。当然还有对应的基本数据结构,那么之后的话,我们的工作就开始进一步转换了。 那么在这块我们要实现的有: 函数的定义 String类型的实现 列表类型的实现 实话实话,这个的实现是相当简陋的。不过作为一个小模型,应该

    2024年02月12日
    浏览(50)
  • 数据结构与算法——排序(C语言实现)

    ✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅ ✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨ 🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿 🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟 🌟🌟 追风赶月莫停留 🌟🌟 🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀 🌟🌟 平芜尽处是春山

    2024年04月09日
    浏览(54)
  • 【C语言】C语言实现一个函数 判断是否是素数

           欢迎来到南方有乔木的博客!!! 博主主页: 点击点击!戳一戳!! 博主QQ: 1636758318 博主简介: 一名在校大学生,正在努力学习Java语言编程。 穷且意坚,不坠青云之志 ,希望能在编程的世界里找到属于自己的光。 跪谢帅气or美丽的朋友们能够帮我点赞! 请对文中

    2024年02月04日
    浏览(84)
  • 数据结构和算法——用C语言实现所有图状结构及相关算法

    本文所有代码均在仓库中,这是一个完整的由纯C语言实现的可以存储任意类型元素的数据结构的工程项目。 首先是极好的工程意识,该项目是一个中大型的CMake项目,结构目录清晰,通过这个项目可以遇见许多工程问题并且可以培养自己的工程意识。 其次是优秀的封装性(

    2024年02月06日
    浏览(177)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包