[c언어] 메르센소수
2020. 12. 16. 10:56ㆍComputer Science/C
메르센 소수를 출력하는 프로그램을 작성한다.
* 메르센 소수란?
2n-1꼴의 수를 메르센 수라고 하며, 메르센 수가 소수일 때 그 수를 메르센 소수라고 한다.
#include <stdio.h>
long long isMersenne(int n)
{
int i;
long long result = 1;
for (i = 1;i <= n;i++)
result *= 2;
return result;
}
int isPrime(long long x)
{
long long i;
for (i = 2;i <= x - 1;i++)
if (x % i == 0)
return 0;
return 1;
}
int main(void)
{
long long num, i, value;
printf("Enter a number: ");
scanf("%lld", &num);
for (i = 2;i <= num;i++)
{
value = isMersenne(i) - 1;
if (isPrime(value) == 1)
printf("(2 ^ %lld - 1) = %lld은 메르센 소수이다.\n", i, value);
}
}
결과
'Computer Science > C' 카테고리의 다른 글
[c언어] 2진수로 변환하기 (배열) (0) | 2020.12.16 |
---|---|
[c언어] 난수 배열에 저장하여 평균 구하기 (0) | 2020.12.16 |
[c언어] 소수 판별 (함수 사용) (0) | 2020.12.16 |
[c언어] 성적 입력 받아 학점 결정하기 (함수 사용) (0) | 2020.12.16 |
[c언어] 사이클 숫자 출력 (0) | 2020.12.16 |