Java가 n보다 작은 질수를 구하는 3가지 방법

3570 단어 Java질량
질수 개념
질수는 소수라고도 부른다. 1보다 큰자연수 중에서 1과 이 정수 자체를 제외하고 다른 자연수정돈하다에 의해 정의될 수 없는 수(1과 자체 두 개인수만 있는 수로 정의할 수 있다.
가장 작은 소수는 2이자 소수 중 유일하다짝수.기타 소수는 모두 홀수이다.질수는 무한히 여러 개가 있기 때문에 가장 큰 질수는 존재하지 않는다.
1: 정의에 따라 해답을 구한다.
또한 가장 멍청한 방식으로 효율이 비교적 낮다.

package test.ms;

public class FindPrime {
	 // find the prime  between 1 to 1000;
	public static void main(String[] args) {
		 printPrime(1000);
	}
	public static void  printPrime(int n){
		
		for(int i = 2; i < n ; i++){
			
			int count = 0;
			
			for(int j = 2 ; j<=i; j++){
				
				if(i%j==0){
					count++;
				}
				if(j==i & count == 1){
					System.out.print(i+" ");
				}
				if(count > 1){
					break;
				}
			}
			
			
		}
		
	}

}
2: 제곱근:

package test.ms;

public class Prime { 
	
	public static void main(String[] args) {
		
		for(int j = 2; j<1000; j++){
			if(m(j)){
				System.out.print(j+" ");
			}
		}
	}
	
	public static boolean  m(int num){
	
		for(int j = 2; j<=Math.sqrt(num);j++){
			if(num%j == 0){
				return false;
			}
		}
		
		return true;
	}

}
3: 법칙을 찾다(한 논단에서 발췌한 토론)
가장 작은 소수는 2이자 소수 중의 유일한 짝수이다.다른 소수는 모두 홀수다.질수는 무한히 여러 개가 있기 때문에 가장 큰 질수는 존재하지 않는다.

package test.ms;

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

public class Primes {
		 
	  public static void main(String[] args) {
	  	
	    //  
	    List<Integer> primes = getPrimes(1000);
	 
	    //  
	    for (int i = 0; i < primes.size(); i++) {
	      Integer prime = primes.get(i);
	      System.out.printf("%8d", prime);
	      if (i % 10 == 9) {
	        System.out.println();
	      }
	    }
	  }
	 
	  /**
	   *   n  
	   *
	   * @param n  
	   *
	   * @return n  
	   */
	  private static List<Integer> getPrimes(int n) {
	    List<Integer> result = new ArrayList<Integer>();
	    result.add(2);
	 
	    for (int i = 3; i <= n; i += 2) {
	      if (!divisible(i, result)) {
	        result.add(i);
	      }
	    }
	 
	    return result;
	  }
	 
	  /**
	   *   n  
	   *
	   * @param n    
	   * @param primes  
	   *
	   * @return   n   primes  ,  true。
	   */
	  private static boolean divisible(int n, List<Integer> primes) {
	    for (Integer prime : primes) {
	      if (n % prime == 0) {
	        return true;
	      }
	    }
	    return false;
	  }
	}
첫 번째와 두 번째는 모두 매우 간단한 방법이다.
세 번째 방법은 하나의 질수의 특성을 설명했다. 모든 질수에서 2만 짝수이다.
만약 한 수가 그 전의 질수에 의해 정돈될 수 있다면, 이 수는 질수가 아니다.

좋은 웹페이지 즐겨찾기