Notice
Recent Posts
Recent Comments
«   2024/05   »
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
Tags
more
Archives
Today
Total
관리 메뉴

My life's library

원하는 값까지의 소수 구하고 더하는 알고리즘!! 본문

알고리즘

원하는 값까지의 소수 구하고 더하는 알고리즘!!

K.kn@ck_Ryan 2017. 3. 9. 04:49

 

  1 #include <stdio.h>
  2 #include <stdlib.h>
  3
  4 void sosu(int num){
  5         int *arr;
  6         int j;
  7         long sum=0;
  8         arr=(int*)malloc(sizeof(int)*num);
  9         int i=2;
 10
 11         for(i=2; i<=num; i++){
 12                 arr[i]=i;
 13                                                                     //입력받은 수만큼 2부터(1은 당빠제외!) 배열 넣어준닷!
 14         }
 15
 16         for(i=2; i<=num; i++){
 17                 if(arr[i]==0)
 18                         continue;                               //이미 0된거 빼버리고! (포함하면 CPU가 힘들어해요 ㅜㅜ)
 19                 for(j=i*2; j<=num; j+=i){
 20                         arr[j]=0;
 21                 }
 22                                                                     //i(자기자신)은 제외 어차피 소수인데 뭐 ㅎㅎ

                                                                           나머진 0으로 초기화
 23         }
 24
 25         for(i=2; i<=num; i++){
 26                 if(arr[i]!=0){
 27                         printf("%d\n",arr[i]);
 28                         sum += arr[i];
 29                 }                                                    //sum에 더해줍니닷!
 30         }    
 31         printf("모두 더한수는?!\n");
 32
 33         printf("%ld입니다!!!!!!\n",sum);//출력                                 
 34
 35         free(arr);
 36
 37 }
 38 int main()
 39 {
 40         int num;
 41         int i;
 42         printf("어느 숫자까지 구하실건가요?\n");
 43         scanf("%d",&num);
 44         printf("아하! %d까지 구하시는군요! 구해드리겠습니다!!\n",num);
 45         sleep(2);
 46         for(i=0; i<10; i++)
 47                 printf("\n");
 48         sosu(num);
 49
 50         return 0;
 51 }

 

 

 

 

티스토리 친구(기장님이란건 비밀 소곤소곤) 님의 게시물 중 에라토스테네스(맞나?)의 체를 보고 열씨미 구현한 알고리즘!!

 

(밤샘 ㅜㅜ)

 

룸메님이 한시간 걸려서 나오는 걸 5초안에 깔끔히 출력시켜 주시는 대단한 코드님이시다 ㅜㅜ

 

 

설마 int 넘어가나 했는데 100만부터 넘어가더라구요 ㅜㅜ

 

오버플로우 때매 계산 귀찮아져서 long형으로...ㅜㅜ