논리 7 : n의 약수를 찾는다
의사코드
for(i = 1; i <= n; i++)
if ( n % i == 0 )
printf("%d\n", i);
약수는 어떤 자연수를 나누어떨어지게 하는 수이다.
약수는 어떤 자연수를 나누어 떨어지게 하는 수이다.
약수는 어떤 자연수를 나누어 떨어지게 하는 수이다.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
int n;
int i;
printf("약수 : ");
scanf("%d", &n);
printf("%d의 약수는 ", n);
for (i = 1; i <= n; i++)
if (n % i == 0) printf("%d ", i);
}
논리 8 : n이 소수인지 아닌지를 판별한다
소수의 성질은 2부터 n-1까지 나눠지는 수가 있으면 소수가 아니다.
소수의 성질은 2부터 n-1까지 나눠지는 수가 있으면 소수가 아니다.
소수의 성질은 2부터 n-1까지 나눠지는 수가 있으면 소수가 아니다.
아닌걸 발견하면 스톱.
소수라는 판단을 하려면 끝까지 봐야 한다.
prime = 1 //소수라고 일단 설정
i ← 2 부터 (n-1) 까지
if ( n % i == 0 )
prime = 0; //소수가 아니다 -> 나눠지는 수가 있기 때문.
break;
if (prime)
소수다
else
소수가 아니다
//첫 번째 방법
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
int n, i;
int prime = 1;
scanf("%d", &n);
for (i = 2; i < n; i++)
if (n % i == 0) {
prime = 0;
break;
}
if (prime)
printf("소수이다");
else
printf("소수가 아니다");
}
// 두 번째 방법 사용자 정의 함수
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int isPrime(int num);
int main(void) {
int n;
scanf("%d", &n);
if (isPrime(n) )
printf("소수이다");
else
printf("소수가 아니다");
}
int isPrime(int num) {
int i;
if (num == 1)
return 0;
for (i = 2; i < num; i++)
if (num % i == 0)
return 0;
return 1;
}
함수를 호출할 때는 자료형을 쓸 필요가 없다. 13행에서 isPrime(int n)이 아니라 isPrime(n)으로 써야 한다는 것.
'C언어' 카테고리의 다른 글
2021 학기말고사 (0) | 2023.09.11 |
---|---|
논리야 놀자 #3 (0) | 2023.09.09 |
논리야 놀자 #1 (0) | 2023.09.08 |
혼공C 도전실전 예제 내 풀이 (0) | 2023.08.17 |
[C언어] 배열을 처리하는 함수 (0) | 2023.08.15 |