Java——输入两个数,判断两数之间有多少个素数,素数和是多少,分别是什么

结果图

在这里插入图片描述

1.引入包

import java.util.*;

2.定义,获取输入

Scanner input=new Scanner(System.in);
	System.out.println("输入第一个数");
    int x=input.nextInt();
    System.out.println("输入第二个数");
    int y=input.nextInt();
    int a;
    int num=0,add=0;

3.对两数大小进行判断,便于循环

if(x==y) {
    	System.out.print("两数相等请重新输入");
    }
    if(y<x) {
    	a=y;
    	y=x;
    	x=a;    	
    }

4.主要循环体和判断

1)从输入的较小数循环至较大数

for(int i=x;i<=y;i++){  }

2)因判断素数只需要判断他是否能除本身和的其他数整除,而判断时只需要判断他能否被小于等于自己的一半的数整除就行,因为商最小是2。
以下为循环语句和判断结果不是素数的情况

        int k = (int)Math.ceil(i/2);
//    	返回大于参数x的一半,只需要检测一半就可以
    	boolean flag = true;   
    	 	
    	for(int j=2;j<=k;j++) {   		
    	if(i%j==0) {
    		flag = false;
    	}
    	}

3)判断结果是素数

if(flag){
    		System.out.print(i+"  ");
    		num++;
    		add+=i;
    	   }    

源码

package shangji;
import java.util.*;
public class ym {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
	Scanner input=new Scanner(System.in);
	System.out.println("输入第一个数");
    int x=input.nextInt();
    System.out.println("输入第二个数");
    int y=input.nextInt();
    int a;
    int num=0,add=0;
    if(x==y) {
    	System.out.print("两数相等请重新输入");
    }
    if(y<x) {
    	a=y;
    	y=x;
    	x=a;    	
    }
    for(int i=x;i<=y;i++){
    	int k = (int)Math.ceil(i/2);
//    	返回大于参数x的一半,只需要检测一半就可以
    	boolean flag = true;
    	
    	for(int j=2;j<=k;j++) {   		
    	if(i%j==0) {
    		flag = false;
    	}
    	}
    	
    	if(flag){
    		System.out.print(i+"  ");
    		num++;
    		add+=i;
    	   }    	    	    		
    		
    }	
    System.out.println(" ");
    System.out.println(x+"和"+y+"之间共有"+num+"个素数");
    System.out.println("素数总和为"+add);
	}

}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值