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

【深基4.例13】质数口袋 - 洛谷icon-default.png?t=N7T8https://www.luogu.com.cn/problem/P5723计算质数和的过程中,需要添加一些逻辑来确保求和不会超过给定的上限L,并且需要记录下所求得的质数个数。此外,需要实现一个函数来判断一个数是否为质数。

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int L= sc.nextInt();
        int sum=0;
        int count=0;
        int num=2;
        while(sum<=L) {
        	if(isPrime(num)) {
        		sum+=num;
        		if(sum<=L) {
        			System.out.println(num);
        			count++;
        		}
        	}
        	num++;
        }
        System.out.print(count);
    }
    public static boolean isPrime(int num) {
    	if(num<=1) {
    		return false;
    	}else {
    		for(int i=2;i*i<=num;i++) {
    			if(num%i==0) {
    				return false;
    			}
    		}
    	}
    	return true;
    	
    }
}
    

这个程序通过一个循环逐个判断自然数是否为质数,并且将质数的和累加到sum变量中,直到质数的和超过给定的上限L为止。在判断一个数是否为质数时,使用了一个辅助函数isPrime来进行判断。


 while(sum<=L) {
     if(isPrime(num)) {
         sum+=num;
         if(sum<=L) {
        	System.out.println(num);
        	count++;
         }
     }
     num++;
 }
 System.out.print(count);

这段代码是用来计算口袋中能装下的质数,并统计其个数的逻辑。

1. `while (sum <= L)`:这个循环条件确保在口袋中装下的质数的和不会超过给定的上限L。只要当前的质数和小于等于L,就继续往口袋里装质数。

2. `if (isPrime(num))`:在循环中,首先调用`isPrime()`函数来判断当前的数字`num`是否是质数。如果是质数,则执行以下逻辑:

    - `sum += num;`:将当前的质数`num`加入口袋中,更新口袋中质数的和。
    
    - `if (sum <= L)`:再次检查质数的和是否小于等于L。如果是,则将当前的质数打印输出,并且将质数的个数`count`加1。如果质数的和已经超过了L,则跳过输出,并且退出循环。

3. `num++`:在每次循环结束后,将`num`递增,准备判断下一个数是否为质数。

4. 最后,`System.out.println(count);`语句输出统计得到的质数的个数。

这段代码实现了一个质数口袋的模拟,按照题目要求,它会依次判断每个自然数是否为质数,并将质数逐个装入口袋,直到口袋中质数的和超过了给定的上限L。

  • 16
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值