문제

소수(prime number)란 1보다 큰 자연수 중 1과 자기 자신 두 개만을 약수로 갖는 수를 말한다.
합성수(composite number)란 1보다 큰 자연수 중 소수가 아닌 수를 말하며 3개 이상의 약수를 갖는다.
1은 소수도 합성수도 아니다.
5개의 자연수를 입력받아 소수인지 합성수인지를 판단하는 프로그램을 작성하시오.

 

입력형식

10억 이하의 자연수 5개가 공백으로 구분되어 주어진다.

 

출력형식

입력된 순서대로 한 줄에 한 개씩 소수이면 "prime number",

합성수이면 "composite number", 

소수도 합성수도 아니면 "number one"이라고 출력한다.

 

<코드>

#include <stdio.h>
#include <math.h>

void check_prime(int N)
{
	int sq, count=0;
	
	if(N==1)
	{
		printf("number one\n");
		return;
	}
	
	sq = (int)sqrt(N);

	for (int i = 2; i <= sq; i++)
	{
		if (!(N%i))
		{
			count++;
		}
		
		if(count>0)
			break;
	}
	
	if(!count)
		printf("prime number\n");
	else
		printf("composite number\n");
}

int main()
{
	int arr[5];
	
	for(int i=0; i<5; i++)
		scanf("%d", &arr[i]);
	
	for(int i=0; i<5; i++)
		check_prime(arr[i]);
	
	return 0;
}

'코딩 > Beginner Coder' 카테고리의 다른 글

1901 : 소수 구하기  (0) 2020.05.29
1740 : 소수  (0) 2020.05.28
1009 : 각 자리수의 역과 합(Number Reverse)  (0) 2020.05.28
1002 : 최대공약수, 최소공배수  (0) 2020.05.26
1658 : 최대공약수와최소공배수  (0) 2020.05.26

+ Recent posts