반응형
4~1,000 사이 자연수의 약수를 구한 후, 그 자연수와 같은 약수를 제외한 나머지 약수들의 합이 자연수와 같아지는 자연수 구하기
예)
6의 약수는 1, 2, 3, 6이다.
네 개의 약수 중 자연수 6과 같은 약수인 6을 제외한 1, 2, 3의 합을 구하면 6이 된다.
이때 약수의 합과 자연수의 값이 같으면 출력한다.
#include<stdio.h>
int main(){
int sum = 0;
for(int i = 4; i <= 1000; i++){
sum = 0; // 각각의 자연수마다 합을 구하여야 하기 때문에 sum을 계속 0으로 초기화 해준다.
for(int j = 1; j < i; j++){ // 하나의 자연수에 대한 약수를 구하기 위한 for 문이다.
if(i % j == 0){ // i를 j로 나누었을 때 나머지가 0이면, j는 i의 약수가 된다.
sum += j;
}
}
if(sum == i)
printf("%5d", i);
}
printf("\n");
return 0;
}
반응형
'C' 카테고리의 다른 글
[C언어] 다차원 배열 (0) | 2021.03.03 |
---|---|
[C언어] 실습: 10진수를 입력하면 2진수로 출력하기 (0) | 2021.03.02 |
[C언어] 실습: 정수를 입력받은 후, 약수 출력하기 (0) | 2021.02.26 |
[C언어] 실습: 여러 개의 정수를 입력받은 후, 합이 0이 되면 프로그램 종료하기 (0) | 2021.02.26 |
[C언어] 실습: 여러 개의 정수를 입력받은 후, 합 구하기 (0) | 2021.02.24 |