輸出第n個(gè)素?cái)?shù)

Problem Description.png

從鍵盤(pán)輸入得到n,輸出第n個(gè)素?cái)?shù)。
2是最小的素?cái)?shù)(常識(shí)嘛嘻嘻)。題目描述中的k<=10000基本不需要額外的代碼操作,可通過(guò)OJ。

/*
 * 輸出第k個(gè)素?cái)?shù),比如輸入3,輸出5;輸入7,輸出17
 */

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class PrimeNumber {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        while (scan.hasNext()) {
            // 輸出第n個(gè)素?cái)?shù)
            int n = scan.nextInt();
            int current = 2;//最小的素?cái)?shù)是2
            int sum = 0;
            List<Integer> list = new ArrayList<>();//list來(lái)保存前n個(gè)素?cái)?shù)
            for (;;) {
                //除了2以外的所有偶數(shù)都不是素?cái)?shù),為了減少判斷將這些偶數(shù)避開(kāi)
                if (current > 2 && current % 2 == 0) {//如果current為大于2的偶數(shù)
                    current++;//current++得到奇數(shù),利用continue進(jìn)行下一次循環(huán)
                    continue;
                }
                int a = -1;
                //下面i的循環(huán)條件值得玩味,優(yōu)化下得到更少的判斷次數(shù)更好的性能更小的時(shí)間復(fù)雜度
                for (int i = 2; i <= Math.sqrt(current); i++) {
                    if (current % i == 0) {
                        a = 0;
                        break;
                    }
                }
                //a==-1,則當(dāng)前current是素?cái)?shù),sum用于控制得到n個(gè)素?cái)?shù)
                if (a == -1) {
                    sum++;
                    // System.out.println(current);
                    list.add(current);

                }
                if (sum == n) {
                    break;
                }
                current++;
            }
            //輸出list的最后一個(gè)數(shù)(即第n個(gè)素?cái)?shù))
            System.out.println(list.get(list.size() - 1));
        }
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 這個(gè)不錯(cuò)分享給大家,從扣上看到的,就轉(zhuǎn)過(guò)來(lái)了 《電腦專(zhuān)業(yè)英語(yǔ)》 file [fail] n. 文件;v. 保存文...
    麥子先生R閱讀 7,110評(píng)論 5 24
  • 【程序1】 題目:古典問(wèn)題:有一對(duì)兔子,從出生后第3個(gè)月起每個(gè)月都生一對(duì)兔子,小兔子長(zhǎng)到第三個(gè)月后每個(gè)月又生一對(duì)兔...
    葉總韓閱讀 5,227評(píng)論 0 41
  • Java經(jīng)典問(wèn)題算法大全 /*【程序1】 題目:古典問(wèn)題:有一對(duì)兔子,從出生后第3個(gè)月起每個(gè)月都生一對(duì)兔子,小兔子...
    趙宇_阿特奇閱讀 2,077評(píng)論 0 2
  • 在這之前,我們已經(jīng)對(duì)這種新聞司空見(jiàn)慣,情侶野外遇難,等待救援期間,為了生存而利用對(duì)方信任,甚至不擇手段。在生與死的...
    貓耳少女mm閱讀 200評(píng)論 0 0
  • 臨睡的夜, 揪著時(shí)光不放手—— 昏黃的燈光下, 一支筆, 一張紙, 才是我靈魂自由發(fā)光的時(shí)刻。 寧?kù)o的曲, 縈繞在...
    078清淺時(shí)光閱讀 297評(píng)論 0 0

友情鏈接更多精彩內(nèi)容