[C언어 소스] 범위 내의 정수 중에 소수 개수를 구하는 함수
//디딤돌 C언어 http://ehpub.co.kr
//범위 내의 정수중에 소수(Prime Number)의 개수를 구하는 함수
//의사 코드(pseudo code)
//함수 GetCountIsPrime(start: 구간의 시작, end : 구간의 끝)
//count를 0으로 초기화
//lcnt를 start로 초기화(for문의 초기 구문)
//반복: lcnt가 number보다 작을동안
// 조건 : lcnt가 소수이면
// count를 1 증가
// lcnt를 1 증가(for문의 후처리 구문)
// count 반환
#include <stdio.h>
#include <assert.h>
int IsPrime(int number);//특정 수가 소수인지 판별하는 함수
int GetCountIsPrime(int start, int end);
int main()
{
assert(GetCountIsPrime(2, 10) == 4);//2, 3, 5, 7
assert(GetCountIsPrime(5, 20) == 6);//5, 7, 11, 13, 17, 19
printf("GetCountIsPrime 함수 테스트 성공\n");
return 0;
}
int IsPrime(int number)
{
int lcnt = 0;
for (lcnt = 2; lcnt < number; lcnt++)
{
if ((number % lcnt) == 0)
{
return 0;
}
}
return 1;
}
int GetCountIsPrime(int start, int end)
{
int lcnt = 0;
int count = 0;
for (lcnt = start; lcnt < end; lcnt++)
{
if (IsPrime(lcnt))
{
count++;
}
}
return count;
}
실행 결과
GetCountIsPrime 함수 테스트 성공
본문
'C언어 > 디딤돌 C언어 예제' 카테고리의 다른 글
[C언어 소스] n 개의 정수 중에 최대값 위치 구하는 함수 (0) | 2016.11.29 |
---|---|
[C언어 소스] n 개의 정수의 합계를 구하는 함수 (0) | 2016.11.29 |
[C언어 소스] 특정 수가 소수(Prime Number)인지 판별하는 함수 (0) | 2016.11.28 |
[C언어 소스] 범위 내의 정수 합계를 구하는 함수 (0) | 2016.11.28 |
[C언어 소스] 블록외부에 정적변수를 선언한 예 (0) | 2016.11.28 |