P5723 【深基4.例13】质数口袋

这篇具有很好参考价值的文章主要介绍了P5723 【深基4.例13】质数口袋。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

题目描述

小 A 有一个质数口袋,里面可以装各个质数。他从 2 2 2 开始,依次判断各个自然数是不是质数,如果是质数就会把这个数字装入口袋。

口袋的负载量就是口袋里的所有数字之和。

但是口袋的承重量有限,装的质数的和不能超过 L L L。给出 L L L,请问口袋里能装下几个质数?将这些质数从小往大输出,然后输出最多能装下的质数的个数,数字之间用换行隔开。

输入格式

一行一个正整数 L L L

输出格式

将这些质数从小往大输出,然后输出最多能装下的质数个数,所有数字之间有一空行。

1.题目分析

该题主要考查质数的判断方法:对于n,定义一个标记变量为1,
从2开始循环到2的平方根,判断n对i是否为0,
如果能被整除,则标记为0,不是质数,
循环结束返回flag,如果为1的话,就是一个质数。

2.题目思路

写一个判断质数的函数isPrime(),从2开始到L遍历,先判断是否为质数,
如果是质数则累加为sum,再判断是否超过口袋容量L,
超过则直接break,反之则打印换行,最后计数器加一(用于记录口袋容量)。文章来源地址https://www.toymoban.com/news/detail-614841.html

3.代码演示

#include <stdio.h>
#include <math.h>
//判断是否为质数
int isPrime(int n) {
    int flag = 1;
    for (int i = 2; i <= sqrt(n); ++i) {
        if (n % i == 0) {
            flag = 0;
        }
    }
    return flag;
}

int main() {
    int l;
    int sum = 0;
    int count = 0;
    scanf("%d", &l);

    for (int i = 2; i < l; ++i) {
        //先判断质数
        if (isPrime(i) == 1) {
            //累加
            sum += i;
            //判断口袋容量
            if (sum > l){
                break;
            }
            //打印
            printf("%d\n", i);
            //记录容量
            count++;
        }
    }
    //打印个数
    printf("%d\n",count);

    return 0;
}

到了这里,关于P5723 【深基4.例13】质数口袋的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 2023-2-13 刷题情况

    有一个只含有 ‘Q’, ‘W’, ‘E’, ‘R’ 四种字符,且长度为 n 的字符串。 假如在该字符串中,这四个字符都恰好出现 n/4 次,那么它就是一个「平衡字符串」。 给你一个这样的字符串 s,请通过「替换一个子串」的方式,使原字符串 s 变成一个「平衡字符串」。 你可以用和

    2023年04月19日
    浏览(18)
  • python LeetCode 刷题记录 13

    题号:13 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并列的 1 。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。 通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特

    2024年02月08日
    浏览(27)
  • LeetCode刷题13:回溯+剪枝解决216.组合总和 III

    找出所有相加之和为  n   的  k   个数的组合,且满足下列条件: 只使用数字1到9 每个数字  最多使用一次   返回  所有可能的有效组合的列表  。该列表不能包含相同的组合两次,组合可以以任何顺序返回。 示例 1: 输入: k = 3, n = 7 输出: [[1,2,4]] 解释: 1 + 2 + 4 = 7 没有其他

    2024年02月02日
    浏览(37)
  • 【洛谷刷题】蓝桥杯专题突破-广度优先搜索-bfs(13)

    目录 写在前面: 题目:P1443 马的遍历 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)         题目描述:         输入格式:         输出格式:         输入样例:         输出样例: 解题思路: 代码: AC !!!!!!!!!! 写在最后: 怎么样才能学

    2023年04月16日
    浏览(304)
  • 【每日刷题】动态规划-代码随想录动规-11、12、13

    问题背景 : 有若干个物品对应各自的体积和价值,有一个容量确定的背包,有选择的将物品装进背包里,求可放进背包的最大价值。 思路: 定义dp数组: dp[i][j]的含义:从下标为[0-i]的物品里任意取,放进容量为j的背包,价值总和最大是多少。 dp[i][j]递推公式: 不放物品

    2024年02月22日
    浏览(41)
  • 13 Go的错误处理

    概述         在上一节的内容中,我们介绍了Go的接口,包括:定义接口、实现接口、使用接口、空接口等。在本节中,我们将介绍Go的错误处理。在Go语言中,错误处理是一种重要的编程模式,它用于处理可能出现的错误或异常情况。Go语言采用了一种简洁而直接的错误处

    2024年02月05日
    浏览(24)
  • Go语言入门13(runtime包)

    ​用来设置可以并行计算的CPU核数最大值,并返回之前的值,具体使用方法上一篇有些,这里不再赘述 ​用于让出CPU时间片,让出当前goroutine的执行权限,调度器安排其他等待的任务运行,并在下次某个时候从该位置恢复执行 ​用于立即中止当前goroutine的运行(中止所在协程

    2024年02月01日
    浏览(22)
  • 超实用的Go语言基础教程,让你快速上手刷题!!

    工欲善其事,必先利其器。掌握Go的基础语法还不够,还需要勤加练习,修习“外功”,才能达到出奇制胜的效果。 在大致了解Go语言的基本语法后,我就迫不得已地想使用这门语言。可是我发现编程思路不是问题,很大的问题是“手慢”,不熟悉常用写法(可能这就是快速

    2024年02月04日
    浏览(34)
  • 基于子口袋的分子生成

    生成与靶蛋白具有高结合亲和力的分子(也称为基于结构的药物设计,structure-based drug design)是药物发现中的一项基本且具有挑战性的任务。最近,深度生成模型在生成以蛋白质口袋为条件的3D分子方面取得了显著成功。然而,大多数现有的方法独立地考虑蛋白质口袋的分子

    2024年02月13日
    浏览(25)
  • P5727 【深基5.例3】冰雹猜想

    给出一个正整数 n n n ,然后对这个数字一直进行下面的操作:如果这个数字是奇数,那么将其乘 3 3 3 再加 1 1 1 ,否则除以 2 2 2 。经过若干次循环后,最终都会回到 1 1 1 。经过验证很大的数字( 7 × 1 0 11 7times10^{11} 7 × 1 0 11 )都可以按照这样的方式比变成 1 1 1 ,所以被称为

    2024年02月15日
    浏览(22)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包