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

2022-06-21 00:00:00 个数 素数 有多少个

结果图

《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);
	}

}
    原文作者:不要生病~
    原文地址: https://blog.csdn.net/qq_41141657/article/details/88698188
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。

相关文章