#6086: 判斷質數執行逾時


ikenanne720 (Amber)


import java.util.Scanner;

public class Main {
//    private static int x;

    public static void main(String[] args) {

        Scanner cin = new Scanner(System.in);
        while (cin.hasNext()) {
            boolean isPrime = true;
            int number = cin.nextInt();
            for (int i = 2; i < number; i++) {
                if ((number % i == 0)) {
                    isPrime = false;
                    break;
                }
            }

            if (isPrime==true) {
                System.out.println("質數");
            } else {
                System.out.println("非質數");
            }
        }
    }
}
 
執行逾時 
 
請問如何解決? 
 
#6101: Re:判斷質數執行逾時


s11113151 (飛走跑跳動)


import java.util.Scanner;

public class Main {
//    private static int x;

    public static void main(String[] args) {

        Scanner cin = new Scanner(System.in);
        while (cin.hasNext()) {
            boolean isPrime = true;
            int number = cin.nextInt();
            for (int i = 2; i < number; i++) {
                if ((number % i == 0)) {
                    isPrime = false;
                    break;
                }
            }

            if (isPrime==true) {
                System.out.println("質數");
            } else {
                System.out.println("非質數");
            }
        }
    }
}
 
執行逾時 
 
請問如何解決? 
 
 


判斷跑到根號number
if cin = 100

2 跑到 100 和 2 跑到 10 是一樣的意思 但是速度就差很多了