반응형
정수 N을 입력받아 1~N 사이의 소수를 모두 구해서 출력하는 프로그램을 작성해보자.
소수는 한 줄에 10개씩 출력함
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
int num;
printf("양의 정수? ");
scanf("%d", &num);
int i, j;
int prime = 0;
int cnt = 0;
for (i = 2; i <= num; i++) {
for (j = 2; j < i; j++) {
if (i % j == 0) {
prime = 1;
break;
}
}
if (!prime) {
printf("%3d ", i);
cnt++;
if (cnt == 10) {
cnt = 0;
printf("\n");
}
}
prime = 0;
}
printf("\n");
return 0;
}
▶ for(i = 2; i <= num; i++) : 1은 소수가 아니므로 생략하고 2부터 사용자가 입력한 양의 정수 값까지 반복문 돌림
▶ for(j = 2; j < i; j++) : 1보다 크고 위 반복문 숫자(i)보다 작은 수까지 반복문 돌림
▶ if (i % j == 0) : 위 두 숫자가 나누어 떨어질 경우 1과 사용자가 입력한 양의 정수 사이의 수인 약수가 있음을 의미함
▶ if (!prime) : 약수가 없는 경우는 소수임
▶ printf("%3d ", i) : 소수 값을 3자리에 맞춰 정렬하여 출력함
cnt == 0;
cnt ++;
if (cnt == 10){
cnt = 0;
printf("\n");
}
▶ 한 줄에 10개씩 출력하기 위해 초기값 0으로 지정된 cnt 변수 생성
▶ cnt 변수의 값을 하나씩 늘려가다가 10이 되면 0으로 초기화 시키고 다음 줄로 넘어감
반응형
'Language > C' 카테고리의 다른 글
[ C ] [ 함수 연습 문제 ] 직사각형 둘레 계산 프로그램 (0) | 2021.11.21 |
---|---|
[ C ] [ 함수 연습 문제 ] 정수 배수 출력 프로그램 (0) | 2021.11.21 |
[ C ] [ 제어문 연습 문제 ] 소수 검사 프로그램 (0) | 2021.11.21 |
[ C ] [ 제어문 연습 문제 ] 정수 배수 출력 프로그램 (0) | 2021.11.21 |
[ C ] [ 제어문 연습 문제 ] ASCII코드 출력 프로그램 (0) | 2021.11.20 |