2015 IT 웹 기반 개발자과정/JAVA
JAVA 소수 찾기 / 소인수분해하기
by 한여름밤의코딩
2015. 11. 2.
import java.util.Scanner;
public class AA {
public static int [] num = new int[100];
public static boolean factor(int r) //소수 출력
{
int range = (int)Math.sqrt(r);
for(int i=2; i<=range; i++){
if(r % i == 0){
System.out.printf("%d*", i); //약수라면 출력
if(is_prime(r/i)==true) System.out.print(r/i); //나눈 값이 소수라면 출력
factor(r/i);
return true;
}
}
return false;
}
public static boolean is_prime(int n) // 소수판별
{
int i;
int range = (int)Math.sqrt(n); // 검사할 범위
if(n == 2) // n이 2
return true; // 2는 소수
if(n%2 == 0 || n == 1) // n이 짝수 혹은 1
return false; // n은 소수 아님
for(i=3; i<=range; i+=2) // i는 2부터 루트n 까지 홀수만 검사
{
if(n%i == 0) // n을 i로 나눈 나머지가 0
return false; // n은 소수 아님
}
return true; // n은 소수
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("정수를 입력하세요");
int input = sc.nextInt();
if(factor(input)==false) System.out.println(input+"은 소수입니다");
}
}