筆試題--判斷素數(質數)輸出相應提示

題目描述

對於表達式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;

    }



}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章