2015. 7. 29. 12:42 Programing/Algorithm
프로젝트 오일러 10번
//
// main.c
// project euler
//
// Created by 김일호 on 2015. 4. 25..
// Copyright (c) 2015년 김일호. All rights reserved.
//
#include <stdio.h>
#include <math.h>
int main(int argc, const char * argv[]) {
long unsigned int total = 2;
int prime;
int n= 0;
for(prime = 3; prime<2000000; prime++)
{
n = (int)sqrt((double)prime);
if(prime % 2 != 0)
{
int flag = 0;
for(int i = 2; i<= n; i++)
{
if(prime % i == 0) {flag = 1; break;}
}
if(flag == 0)
{total += prime;}
else
{flag = 0;}
}
}
printf("%ld\n", total);
return 0;
}
/*
소수를 판별하기 위해 제곱근을 사용, 2부터 제곱근 까지 나누어진다면 flag를 1로 설정하여 아무것도 하지 않고 제곱근까지 떨어지지 않는다면 flag는 초기화값 0 이므로 더함. for문 안에 else를 써서 떨어지지 않는 값을 더하면 2부터 제곱근 까지 나누어 떨어지지 않는 수 모두를 더하기 때문에 flag를 설정
*/
'Programing > Algorithm' 카테고리의 다른 글
Selection Sort (0) | 2015.09.27 |
---|---|
프로젝트 오일러 9번 (0) | 2015.04.25 |
Recursive Fibonacci (0) | 2015.04.06 |
순환/재귀 팩토리알 구현 (0) | 2015.04.06 |
3개의 숫자를 내림차순으로 정렬 (0) | 2015.04.06 |