POJ 3006(Dirichlet's Theorem on Arithmetic Progressions T) 素数判定入门 Java

来源:互联网 发布:淘宝上的气味图书馆 编辑:程序博客网 时间:2024/05/17 07:51

素数判定水题,秒一波!!!

import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.PrintWriter;import java.util.Scanner;/** * 题意:一个等差数列,首项为 a , 公差为 b , 求该等差数列中,第 n 个素数。 *  * 解决:暴力素数判断 *  * @author tinyDolphin */public class Main {    /**     * 判断是否为素数 必须熟练,闭着眼睛都能敲出来!!!     */    private static boolean isPrime(int num) {        if (num == 1) {            return false;        }        for (int index = 2; index * index <= num; index++) {            if (num % index == 0) {                return false;            }        }        return true;    }    public static void main(String[] args) {        Scanner in = new Scanner(new BufferedReader(new InputStreamReader(System.in)));        PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));        int inputA;        int inputB;        int inputN;        int count;        // 此处使用 & 而不是 && , 因为三个输入数无论如何,需要被输入。        while (!((inputA = in.nextInt()) == 0 & (inputB = in.nextInt()) == 0 & (inputN = in.nextInt()) == 0)) {            count = 0;            while (count != inputN) {                if (isPrime(inputA)) {                    count++;                }                inputA += inputB;            }            // 最后需要减去 多加的一个 inputB            out.println(inputA - inputB);        }        out.flush();    }}
阅读全文
0 0
原创粉丝点击