Java練習コード 素数であるかどうかチェック
Java 素数その1
試し割り法
public class Main { public static void main(String[] args) { int primeNumber = 100; // 素数の数 int count = 1; // 素数のカウント int num = 0; // 数 while (count <= primeNumber) { if (isPrimeNumber(num)) { System.out.println(count + " " +num); count++; } num++; } } //引数で渡された数が素数であるかどうかを判定するメソッド public static boolean isPrimeNumber(int num) { if (num < 2) { return false; } for (int i = 2; i <= num / 2; i++) { if (num % i == 0) { return false; } } return true; } }
エラトステネスのふるい
import java.util.Arrays; import java.util.ArrayList; public class Main { public static void main(String[] args) { ArrayList<Integer> primes = sieveOfEratosthenes(100); for (int prime : primes) { System.out.println(prime); // for(int i = 0; i < primes.size(); i++){ // System.out.println(primes.get(i); } } public static ArrayList<Integer> sieveOfEratosthenes(int n) { boolean[] isPrime = new boolean[n + 1]; Arrays.fill(isPrime, true); isPrime[0] = false; isPrime[1] = false; for (int i = 2; i * i <= n; i++) { if (isPrime[i]) { for (int j = i * i; j <= n; j += i) { isPrime[j] = false; } } } ArrayList<Integer> primes = new ArrayList<>(); for (int i = 0; i <= n; i++) { if (isPrime[i]) { primes.add(i); } } return primes; } }