结果图
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);
}
}