笔试题--判断素数(质数)输出相应提示

题目描述

对于表达式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;

    }



}

发布了84 篇原创文章 · 获赞 15 · 访问量 9983

猜你喜欢

转载自blog.csdn.net/yalu_123456/article/details/102741419
今日推荐