java素数的判断方法_Java素数判断

该博客主要展示了如何使用Java编程实现三到一百之间的素数输出,任意两个整数之间的素数输出,以及任意两个整数之间最大与最小的十个素数。代码中包含了素数判断方法、输入输出方法以及错误处理。特别注意了2作为素数的特殊情况和区间内无素数的输出提示。此外,还强调了输入合法性检查以及Java与C++相比可能更简洁的语法特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目:输出三到一百之间的素数,输出任意两个整数之间的素数,输出任意两个整数之间最大与最小的十个素数。

代码:

public class Ketang {

public static void main(String args[]) throws Exception {

int number=0; //用于计数输出

//输出3到100之间的素数

System.out.println("三到一百之间的素数如下:");

for(int i=3;i<98;i++){

if(prime(i)==0){

number++;

System.out.print(i+" ");

}

if(number==5){

System.out.println();

number=0;

}

}

System.out.println();

//输出任意两个整数之间的素数

System.out.println("输出任意两个素数之间的素数");

System.out.print("请输入第一个整数:");

int n1=in_Enter(); //调用输入方法

System.out.print("请输入第二个整数:");

int n2=in_Enter();

number=0; //重新计数

int d1=n1>n2?n1:n2; //判断大小

int x1=n1

int p=0; //用于下面判断两数之间是否素数个数为0

System.out.println("两数之间的素数为:");

for(int i=x1;i<=d1;i++){

if(prime(i)==0){

number++;

p=1;

System.out.print(i+" ");

}

if(number==5){

System.out.println();

number=0;

}

}

if(p==0)

System.out.print("不好意思,经判断,两数之间没有素数!");

System.out.println();

//输出两个数中间的最大与最小十个数

System.out.println("输出两个数中间最大与最小的十个素数");

System.out.print("请输入第一个整数:");

int n3=in_Enter();

System.out.print("请输入第二个整数:");

int n4=in_Enter();

int d2=n3>n4?n3:n4; //判断大小

int x2=n3

int j=0; //素数数组下标

int sa[]=new int[10]; //素数数组

for(int i=0;i<10;i++){ //赋初值

sa[1]=0;

}

for(int i=x2;i<=d2;i++){ //最小的十个

if(prime(i)==0){

sa[j]=i; //数组赋值

j++; //每赋值成功一个,下标加1

}

if(j==10)

break;

}

outPut(j,sa); //调用输出方法

j=0; //下标为0,重新开始计数

for(int i=d2;i>=x2;i--){//最大的十个

if(prime(i)==0){

sa[j]=i; //数组赋值

j++; //每赋值成功一个,下标加1

}

if(j==10)

break;

}

outPut(j,sa); //调用输出方法

}

//判断素数

public static int prime(int n){

int is_Prime=1; //用于输出判断

if(n==2) //2是素数

return is_Prime=0;

else

for(int i=2;i<=n/2+1;i++) //判断是否为素数

if(n%i == 0)

return is_Prime=1;

return is_Prime=0;

}

//输入方法

public static int in_Enter(){

String enter="";

int num;

int n=1;

while(n==1){

try{

BufferedReader in=new BufferedReader(new

InputStreamReader(System.in));

enter=in.readLine();

char[] ca=enter.toCharArray(); //转换为char数组,判断输入是否合法

for(int i=0;i

if(ca[i]'9'){ //判断

n=1;

System.out.print("输入不合法!请重新输入:");

break;

}

else

n=0;

}

}catch(IOException e){}

}

return num=Integer.parseInt(enter);

}

//输出方法

public static void outPut(int b,int s[]){

int a=0; //重新计算每行的个数

if(b<10){ //两数中间素数个数不足十个

if(b==0) //两数中间没有素数

System.out.println("两数中间的素数个数为0!");

else{

System.out.println("两数中间只有"+b+"个素数,这几个素数分别为");

for(int i=0;i

System.out.print(s[i]+" ");

a++;

if(a==5){ //每行五个输出

System.out.println();

a=0;

}

}

}

}

else{

System.out.println("这些素数分别为:");

for(int i=0;i<10;i++){

System.out.print(s[i]+" ");

a++;

if(a==5){ //每行五个输出

System.out.println();

a=0;

}

}

}

}

}

得考虑的地方:1)2是素数,在判断素数的方法中得单独判读。2)第二情况得考虑素数个数为零的时候,为零则另作输出。

3)第三个情况的考虑素数个数为零或不足十个的情况。4)输入方法中应该加入判断输入的代码,让程序自动报错,而不是系统报错。

5)Java对比C++,多了许多不知道的方法,也许应用这些方法,能够减少代码量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值