-
[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