안녕하세요 알통몬입니다. 공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!! 포스팅 내용이 찾아주신 분들께 도움이 되길 바라며 더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^
|
서로 다른 두 정수 a,b에 대하여 d(a) = b 이고 d(b) =a 이면
a,b 는 친화쌍이라고 하고 a와 b 를 각각 친화수(우애수)라고 합니다.
예를 들어 220의 약수는 자신을 제외하면 1,2,4,5,10,20,22,44,55,100이므로
그 합은 d(220) = 284입니다. 또 284의 약수는 자신을 제외하면 1,2,4,71,142 이므로
d(284) = 220 입니다.
10000 이하의 친화수들을 모두 찾아서 그 합을 구하세요.
public class Question {
public static void main(String[] args) {
int[] nums = new int[9999];
int sum = 0;
int[] intArr = new int[9999];
for(int a = 0; a<nums.length; a++){
nums[a] = a+2;
}
int total = 0;
for(int b = 0; b<nums.length; b++){
sum = 0;
for (int i = 1; i < nums[b]; i++) {
if (nums[b] % i == 0) {
sum += i;
}
}
intArr[b] = sum;
}
int count = 0;
for(int j = 0; j<intArr.length; j++){
for(int k = 0; k<nums.length; k++){
if( intArr[j]==nums[k] && intArr[k]==nums[j] && nums[k] != intArr[k]){
count ++;
System.out.println((j+2) + " :" + nums[k] + ":" + count);
total += nums[k];
}
}
}
System.out.println("total : " +total);
}
}
'알고리즘,손코딩 문제' 카테고리의 다른 글
손코딩 문제 : *가 하나씩 감소하며 출력 (0) | 2017.03.11 |
---|---|
손코딩 문제 : *가 한개씩 증가하며 출력 (0) | 2017.03.11 |
프로젝트 오일러 문제 48 : 1^1 + 2^2 + 3^3 + ... + 1000 ^ 1000의 마지막 10자리 숫자는 무엇입니까? (0) | 2017.03.11 |
프로젝트 오일러 문제 15 : 20 X 20 격자에는 모두 몇 개의 경로가 있습니까? (0) | 2017.03.11 |
프로젝트 오일러문제 40 : 소수점 아래 n번째 숫자를 dn이라고 했을 때, 아래 식의 값은 얼마입니까? (0) | 2017.03.11 |