題目描述
對於表達式n^2n+41,當[x,y],範圍內取整數是,比如(-39<=x<y<=50),判定該表達式的值是否都爲素數。
輸入:
輸入數據有多組,每組佔一行,由兩個整數x,y組成,當x=0,y=0是,表示輸入結束,該行不做處理。
輸出:
對於每個給定範圍內的取值,如果表大會的值都爲素數,則輸出“OK”,否則輸出“Sorry”,(不包括雙引號),每組輸出佔一行。
樣例輸入:
0 2
0 0
樣例輸出:
OK
代碼
import java.util.ArrayList;
import java.util.Scanner;
public class MyTest11 {
public static void main(String[] args) {
ArrayList<String> strings = new ArrayList<>();
// 多行輸入
while (true) {
Scanner sc = new Scanner(System.in);
// System.out.println("請輸入:");
String num = sc.nextLine();
// System.out.println("輸出:"+num);
if (num.equals("0 0")){
break;
}
strings.add(num);
}
// System.out.println(strings);
// 判斷質數
for (int i = 0; i < strings.size(); i++) {
String in = strings.get(i);
String[] s = in.split(" ");
int x=Integer.parseInt(s[0]);
int y=Integer.parseInt(s[1]);
boolean flag=true;
for (int j = x; j <=y; j++) {
int sum=(j*j+j+41);
System.out.println(sum);
flag = isPrimeNum(sum);
System.out.println(flag);
if (flag==false){
System.out.println("Sorry");
break;
}
}
if (flag==true){
System.out.println("OK");
}
}
}
//判斷是否爲素數方法
private static boolean isPrimeNum(int num){
if (num==2){
return false;
}
for (int i = 2; i <num ; i++) {
int a =num%i;
if (a==0){
return false;
}
}
return true;
}
}