1. 진약수의 합
자연수 N이 주어지면 자연수 N의 진약수의 합을 수식과 함께 출력하는 프로그램을 작성하세요.
▣ 입력설명
첫 줄에 자연수 N이 주어집니다. (3<N<=100)
▣ 출력설명
첫 줄에 더하는 수식과 함께 합을 출력합니다.
▣ 입력예제 1
20
▣ 출력예제 1
1 + 2 + 4 + 5 + 10 = 22
2. 나의 전략 풀이 방법
#include <stdio.h>
int main()
{
int num;
int sum = 1;
int i;
scanf ("%d",&num);
printf("1");
for (i=2; i<num; i++)
{
if (num % i == 0)
{
printf(" + %d", i);
sum += i;
}
}
printf(" = %d",sum);
return 0;
}
나머지 연산자를 사용해 풀었다.
3. 강사님 풀이 방법
#include<stdio.h>
int main(){
int n, sum=1, i;
scanf("%d", &n);
printf("1 ");
for(i=2; i<n; i++){
if(n%i==0){
sum+=i;
printf("+ %d ", i);
}
}
printf("= %d\n", sum);
return 0;
}
4. Reflection
내가 푼 방식과 강사님이 푼 방식이 같다. 잘 풀었다!!
약수와 배수의 문제는 나머지 연산자를 사용해서 풀면 될것 같다.
'임베디드SW > 알고리즘깨부수기' 카테고리의 다른 글
[C언어] 알고리즘을 위한 스택(Stack) 구현 (0) | 2022.08.25 |
---|
댓글