티스토리 뷰
10 이하의 소수를 모두 더하면 2 + 3 + 5 + 7 = 17 이 됩니다.
이백만(2,000,000) 이하 소수의 합은 얼마입니까?
소수 구하는 범위가 너무 커서 처음 짠 코드는 10분이 넘어가도 구하지 못했다.
그래서 검색 결과 에라토스테네스의 체 방식을 사용하여 소스 코드를 구성해 보았다.
자세한 내용은 위의 링크를 참고하면 된다.
#include <stdio.h>
#include <stdbool.h>
void eratos(int n){
bool PrimeArray[n+1];
int i,j;
long long sum = 0;
if(n<=1) return;
for(i=2; i<=n ; i++)
PrimeArray[i] = true;
for(i=2; (i*i) <= n; i++){
if(PrimeArray[i]){
for(j=i*i; j<=n; j +=i)
PrimeArray[j] = false;
}
}
for(i=2; i<=n ; i++){
if(PrimeArray[i] == true)
sum = sum + i;
}
printf("%lld\n",sum );
}
int main (void){
int n;
printf("구하려는 소수의 범위를 정하시오 \n");
scanf("%d",&n);
eratos(n);
return 0;
}
'알고리즘 > 오일러 프로젝트' 카테고리의 다른 글
오일러 프로젝트 12번 (0) | 2016.04.23 |
---|---|
오일러 프로젝트 11번 (0) | 2016.04.23 |
오일러 프로젝트 8번 (0) | 2016.04.17 |
오일러 프로젝트 7번 (0) | 2016.04.17 |
오일러 프로젝트 5번 (0) | 2016.04.16 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 오일러 프로젝트 8번
- 오일러 프로젝트 14번
- 허프만 알고리즘
- 팁스강좌
- 오일러 프로젝트 13
- 약수 500개
- 키보드 메시지 이벤트
- TIPS강좌
- Tips
- tipsr강좌
- 헤더
- 오일러
- 이미지게임
- 오일러 프로젝트 10본
- 화투이미지맞추기
- MFC
- CBrush
- 와이어샤크
- 패킷
- arp
- 오일러 프로젝트 12번
- 서버
- 오일러 프로젝트 16번
- 비손실 압축
- 오일러 프로젝트 11번
- 2의 1000승
- tipssoft
- 실행 압축
- Omok
- tipsoft
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함