개키우는개발자 : )

[자바 알고리즘] 진약수의 합 본문

Algorithm Programming/Java

[자바 알고리즘] 진약수의 합

DOGvelopers 2020. 1. 7. 12:11
반응형

광고 클릭은 개발자(저) 에게 큰 힘이 됩니다!!'ㅁ'

 

| 문제

자연수 N이 주어지면 자연수 N의 진약수의 합을 수식과 함께 출력하는 프로그램을 작성하세요.

 

| 입력설명

자연수 N을 입력합니다.(3<N<=100)

 

| 출력설명

더하는 수식과 함께 합을 출력합니다.

 

| 입력 예제

20

 

| 출력 예제

1 + 2 + 4 + 5 + 10 = 22

 

※진약수

어떤 자연수 n의 약수들 중에서 자기 자신인 n을 제외한 약수 진약수(proper divisor)라고 한다.

 

| 풀이

1은 모든 숫자의 약수 이기 때문에 1찍고 그리고 약수의 값을 누적하여 더해준다.

import java.util.Scanner;

public class Test3 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n, i, sum=1;
        n = sc.nextInt();
        System.out.printf("%d",1);
        for(i=2; i<n; i++){
            if(n%i==0){
                System.out.printf(" + %d",i);
                sum = sum+i;
            }
        }
        System.out.printf(" = %d",sum);
    }
}

결과

반응형
Comments