代码解说:
定义一个main父类
用布尔型考虑 i 是否能被2整除来判断 i 是否为质数
构造main静态子类
在子类中定义一个Buider数组
用于输出质数和质数的对数
while(sc.hasnext)中sc.hasbext为设置一个终止符
调用hasNext()的重载方法hasNext(String patten)
意为:进入while循环,sc.hasNext ()就要求我们给他输入一个值,所以就不会输出“请输入:”,当我们输完后,String str = sc.next ()中,会从sc中取出我们输入的那个值返回到str中,如果没有值,它就会被阻塞要求我们给它一个值。
package shixun; import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class main { public static boolean jug(int a){ //这里i<=Math.sqrt(a)记得要加上“=” for(int i=2;i<=Math.sqrt(a);i++) { if(a%i==0)//判断是否能被2整除 return false; } return true;
}
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
StringBuilder str=new StringBuilder();
//定义Builder数组
while(sc.hasNext()) {
int num=sc.nextInt();
int sum=0;
if(num<1000) {
for(int k=2;k<=num/2;k++) {
if(jug(k)&&jug(num-k)) {
str.append("(");
str.append(k);
str.append(",");
str.append(num-k);
str.append(")");
str.append("和");//控制数组输出
sum++;
}
}
String[] array = new String[] { "i", "sum" };
// System.out.println(sum+" "+arrayList); //System.out.println(sum+" "+str.insert(0, "(").deleteCharAt(str.length()-1).append(")"));
System.out.println(sum+" "+str.insert(0, "(").deleteCharAt(str.length()-1).append(")"));
}else {
System.out.println("该数已超出计算范围");
}
}
}
}
输入:10
输出:2 ((3,7) 和(5,5))
本人是java新学者,代码若有不完善之处还请各位大佬多指教