1579, 10/79 회원가입  로그인  
   0226daniel
   소수 구하는 프로그램

http://www.hackerschool.org/HS_Boards/zboard.php?id=Free_Lectures&no=8069 [복사]


중 1 수학시간에 학교에서 소수를 배우는데,

배우는 도중 문득 c언어 코드가 생각나서 집에와서 한번 만들어 보았습니다.

일단 소스를 보시죠.


Colored By Color Scripter™
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
        
#include <stdio.h>
void main()
{
    unsigned long long i, j, count = 1, s_max;
    long sum = 0;
    FILE *out;
    out = fopen("a.txt", "w");
    printf("어디까지의 소수를 출력하시겟습니까?");
    scanf("%lld", &s_max);

    for(i=1;i<=s_max;i++){
        for(j=2;j<i;j++){
            if((i%j)==0)
                break;
        }
        if(i==j){
            fprintf(out, "%lld\t", i);
            printf("%lld\t", i);
            count++;

            if((count%8)==0)
                fprintf(out, "\n");
                printf("\n");
        }
    }
    fprintf(out, "\n1부터 %lld 까지의 소수는 %lld개 입니다.", s_max, count);
    printf("\n1부터 %lld 까지의 소수는 %lld개 입니다.", s_max, count);
    fclose(out);
}



모든 숫자를 데입해서 소수를 찾는 형식으로 한 결과







역시 성공적이였습니다!!

하지만 더 큰 숫자를 하게 되면







이와 같이 매우 느린 속도로 연산을 하게 됩니다.​

그래서!!

다시 만들게 되었습니다.​


Colored By Color Scripter™
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
32
33
34
35
        
#include<stdio.h>

int main()
{
    FILE *out;
    out = fopen("a.txt", "w");
    unsigned int n, x, y, count=0;
    printf("어디까지의 소수를 출력하시겟습니까?");

    scanf("%d", &n);
    x=1;
    if(n>0){
        fprintf(out, "2\t");
        printf("2\t");
        count++;
    while(x+2<n) {
        x+=2;
        y=3;
        while(y*y<x && x%y!=0){
            y+=2;
        }
        if(y*y>x) {  
            fprintf(out, "%d\t", x);
            printf("%d\t", x);
            count++;
            if((count%8)==0){
                fprintf(out, "\n");
                printf("\n");
            }
        }
    }
    fprintf(out, "\n1부터 %d 까지의 소수는 %d개 입니다.", n, count);
    return 0;
    }
}



이 방법은 2를 제외한 홀수들만 찾는 형식입니다.

과연 이 방법은 효과가 있을까요??







역시 확연한 차이를 보이네요

이상입니다^^

그림&동영상을 보시려면 http://blog.naver.com/0226daniel/220035729531

  Hit : 7538     Date : 2014/10/26 12:37
[불법/스팸글로 신고하기]



    
ehaakdl 재밋네여 혹시 같이 온라인이나 오프라인으로 스터디 하실래여? 요즘 프로그래밍하기가 귀찮아져서 이런 모임좀 가져볼려는데 리눅스도 하고 관심 있으시면 ehaakdl@naver.com메일이나 쪽지 주세여 2014/11/10  
gohuns123 굿 2015/01/14  
1399   RSA 공개키 구하는 소스 코드 입니다.     oldlove7
12/03 8277
1398   sql 인젝션 자료입니다.     oldlove7
12/03 5675
1397   프로그램에서 큰수를 처리하는 클래스 입니다.     oldlove7
12/03 5846
1396   방화벽의 종류 입니다.[2]     oldlove7
11/11 6776
1395   [인용+자작] Network Theory[1]     U_SoRang
11/07 6289
1394   [자작/TIP] Wireshark에 GeoIP 연동하기[1]     U_SoRang
11/07 6679
  소수 구하는 프로그램[2]     0226daniel
10/26 7537
1392   [펌]리눅스 자료     gohuns123
09/20 5838
1391   자료구조 강좌_해시     parkjy1917
08/31 6084
1390   자료구조 강좌_정렬     parkjy1917
08/31 6364
1389   자료구조 강좌_트리     parkjy1917
08/31 5967
1388   자료구조 강좌_리스트     parkjy1917
08/31 6173
1387   자료구조 강좌_스택과 큐     parkjy1917
08/31 6339
1386   자료구조 강좌_배열     parkjy1917
08/31 6187
1385   자료구조 강좌_자료구조의 기본 개념[1]     parkjy1917
08/31 6413
1384   네트워크 보안 강좌_무선 네트워크 보안과 취약점[3]     parkjy1917
08/28 6494
1383   네트워크 보안 강좌_세션 하이재킹     parkjy1917
08/28 6391
1382   네트워크 보안 강좌_터널링     parkjy1917
08/28 6267
1381   네트워크 보안 강좌_스푸핑     parkjy1917
08/28 5941
1380   네트워크 보안 강좌_풋프린팅과 스캐닝[1]     parkjy1917
08/28 6082
[1][2][3][4][5][6][7][8][9] 10 ..[79]

Copyright 1999-2021 Zeroboard / skin by Hackerschool.org / Secure Patch by Hackerschool.org & Wowhacker.com