728x90
커뮤니티_모각코 (모여서, 각자, 코딩) 활동을 하면서 배운 내용을 되새기며 쓴 글입니다.
코딩을 배우고 싶다면 코뮤니티 활동을 적극 추천합니다.
https://cafe.naver.com/codeuniv
소수 출력하기( 동적 할당 활용해서 소수의 개수를 출력하는 문제)
임의의 N개의 숫자를 입력받고, 그중에서 소수인 수의 개수를 출력하는 프로그램을 만들어보세요.
입력 ex)
숫자의 개수 : 5
3
9
13
20
12
출력 ex)
소수의 개수는 2입니다.
풀어보기
#pragma warning(disable : 4996)
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int j;
int N;
int k = 0;
int* arr;
printf("숫자를 입력하세요.\n");
printf("숫자의 개수 : ");
scanf_s("%d", &N);
arr = (int*)malloc(N * sizeof(int));
for (int i = 0; i < N; i++)
{
scanf_s("%d", &arr[i]);
}
//1은 자연수
//소수란 1 과 자기자신만 갖는수(짝수는 제외(그중 2는 소수임))
for (int i = 1; i < N; i++) //1은 자연수제외
{
for (j = 2; j < i; j++)
{
if (i % j == 0) {
break; // 짝수 제외
}
}
if (j == i) {
arr[k] = j;
k++;
}
}
printf("소수의 개수는 %d입니다.", k);
free(arr);
return 0;
}
#pragma warning(disable : 4996)
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i,j, count;
int N = 0;
count = 0;
int* arr;
printf("숫자의 개수 : ");
scanf_s("%d", &N);
arr = (int*)malloc(N * sizeof(int));
for (i = 0; i < N; i++)
{
scanf_s("%d", &arr[i]);
for (j = 2; j < arr[i]; j++)
{
if (arr[i] % j == 0)
break; // 약수체크
}
if (j == arr[i]) {
/*arr[i]++;*/
count++;
}
}
printf("%d", count);
free(arr);
return 0;
}
#pragma warning(disable : 4996)
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i,j, count;
int N = 0;
count = 0;
int* arr;
printf("숫자의 개수 : ");
scanf_s("%d", &N);
arr = (int*)malloc(N * sizeof(int));
for (i = 0; i < N; i++)
{
scanf_s("%d", &arr[i]);
for (j = 2; j <= arr[i]; j++)
{
if (arr[i] % j == 0)
{
if (j == arr[i])
count++;
else
break;
}
}
}
printf("소수의 개수는 %d입니다.\n", count);
free(arr);
return 0;
}
#pragma warning(disable : 4996)
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i, j, cnt;
int n = 0;
int count = 0;
int* arr;
printf("숫자 몇개 : ");
scanf_s("%d", &n);
arr = (int*)malloc(n * sizeof(int));
for (i = 0; i < n; i++)
{
scanf_s("%d", &arr[i]);
cnt = 0;
for (j = 1; j <= arr[i]; j++)
{
if (arr[i] % j == 0)
cnt++;
}
if (cnt == 2) {
count++;
}
}
printf("\n%d\n", count);
free(arr);
return 0;
}
마무리
코드는 답이 하나라고 생각 하면 안 된다고 배웠습니다.
코딩하는 사람마다 다를 수 있으니깐 여러 코드를 보고 학습하는 게 좋을 거 같네요~
이문 제답들은 이것저것 참고하면서 짠 거라 크게 다르진 않지만 그래도 두루두루 보는 게 도움될 것 같습니다.
'C_ language > C언어 심화_모각코' 카테고리의 다른 글
C언어_심화_동적 메모리 할당 (0) | 2022.06.17 |
---|---|
C언어_심화_함수 포인터 (0) | 2022.06.09 |
C언어_심화_2차원 배열과 이중포인터 (0) | 2022.05.26 |
C언어_심화_이중 포인터 (0) | 2022.05.10 |
C언어_심화_2차원 배열 (0) | 2022.05.06 |
댓글