当前位置:   article > 正文

【C语言】质数口袋_阿福有一个口袋,可以用来装各个素数。他从2开始,依次判断各个自然数是不是素数,如

阿福有一个口袋,可以用来装各个素数。他从2开始,依次判断各个自然数是不是素数,如

题目描述

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

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

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

输入格式

一行一个正整数 L。

输出格式

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

输入输出样例

输入 #1复制

100

输出 #1复制

2
3
5
7
11
13
17
19
23
9

输入 #2复制

5

输出 #2复制

2
3
2

输入 #3复制

11

输出 #3复制

2
3
5
3

说明/提示 

数据保证,1≤L≤105。

代码如下(新手上路,请多关照): 

  1. #include<stdio.h>
  2. #include<math.h>
  3. int is_prime(int n);
  4. int main()
  5. {
  6. int n;
  7. int sum=0,count=0;
  8. scanf("%d",&n);
  9. for(int i=2;sum+i<=n;i++){
  10. if(is_prime(i)){
  11. printf("%d\n",i);
  12. count++;
  13. sum+=i;
  14. }
  15. }
  16. printf("%d",count);
  17. return 0;
  18. }
  19. int is_prime(int n){
  20. for(int j=2;j<=sqrt(n);j++){
  21. if(n%j==0)
  22. return 0;
  23. }
  24. return 1;
  25. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/192071
推荐阅读
相关标签
  

闽ICP备14008679号