#6086: 判斷質數執行逾時


ikenanne720 (Amber)

學校 : 不指定學校
編號 : 21686
來源 : [203.74.120.114]
最後登入時間 :
2012-01-16 14:17:12
a007. 判斷質數 | From: [114.36.36.21] | 發表日期 : 2011-11-16 17:36

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 (飛走跑跳動)

學校 : 樹德科技大學
編號 : 20657
來源 : [118.163.247.69]
最後登入時間 :
2019-11-28 10:12:42
a007. 判斷質數 | From: [114.27.157.252] | 發表日期 : 2011-11-21 00:24

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 是一樣的意思 但是速度就差很多了 

 
ZeroJudge Forum