ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JAVA] 약수의 합을 구하는 프로그램
    @떤떤/#JAVA 2020. 4. 15. 16:08

    약수를 구할 때 1부터 n까지 for문을 돌리면서 하는게 프로그래머에겐 편하겠지만

    숫자가 커질수록 컴퓨터는 편하지 않다.

     

    10의 약수를 구한다고 했을 때

    10의 약수의 양의 집합은 {1,2,5,10} 이다.

    10을 반절로 나누면 5. 그 안에 있는 숫자들로도 충분히 구할 수 있으며 속도 또한 빨라진다. 

     

    package solution;
    
    import java.util.Scanner;
    
    public class AddDivisor {
    
    	public int addDivisor(int n){
    		int answer=0;
    		if(n==1||n==0) return n;
    		else{
    			for(int i=1;i*i<n;i++){
    			if(n%i==0){
    				answer+=i;
    				answer+=n/i;
    				}
    			}
    		}
    		return answer;
    	}
    	
    	public static void main(String[] args) {
    		AddDivisor addDiv=new AddDivisor();
    		Scanner scan=new Scanner(System.in);
    		int inputNum=0;
    		int sum=0;
    		System.out.print("자연수를 입력해주세요 : ");
    		inputNum=scan.nextInt();
    		sum=addDiv.addDivisor(inputNum);
    		System.out.println("결과 : "+sum);
    	}
    
    }
    

     

    '@떤떤 > #JAVA' 카테고리의 다른 글

    [JAVA] 열거 타입  (2) 2020.04.11
    [JAVA] 삼항 연산자  (0) 2020.04.10

    댓글

Designed by Tistory.