1580, 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 : 9775     Date : 2014/10/26 12:37



    
ehaakdl 재밋네여 혹시 같이 온라인이나 오프라인으로 스터디 하실래여? 요즘 프로그래밍하기가 귀찮아져서 이런 모임좀 가져볼려는데 리눅스도 하고 관심 있으시면 ehaakdl@naver.com메일이나 쪽지 주세여 2014/11/10  
gohuns123 굿 2015/01/14  
1400   c 언어 보안 코딩 가이드 입니다.     oldlove7
12/11 9367
1399   자바 보안 코딩 가이드 입니다.[1]     oldlove7
12/11 7664
1398   버퍼오버플로우 자료입니다.[2]     oldlove7
12/04 7930
1397   RSA 공개키 구하는 소스 코드 입니다.[1]     oldlove7
12/03 9798
1396   sql 인젝션 자료입니다.[1]     oldlove7
12/03 7328
1395   프로그램에서 큰수를 처리하는 클래스 입니다.     oldlove7
12/03 7396
1394   방화벽의 종류 입니다.[3]     oldlove7
11/11 8445
1393   [인용+자작] Network Theory[1]     U_SoRang
11/07 8066
1392   [자작/TIP] Wireshark에 GeoIP 연동하기[2]     U_SoRang
11/07 8339
  소수 구하는 프로그램[2]     0226daniel
10/26 9774
1390   [펌]리눅스 자료     gohuns123
09/20 7225
1389   자료구조 강좌_해시     parkjy1917
08/31 7562
1388   자료구조 강좌_정렬     parkjy1917
08/31 7902
1387   자료구조 강좌_트리     parkjy1917
08/31 7423
1386   자료구조 강좌_리스트     parkjy1917
08/31 7617
1385   자료구조 강좌_스택과 큐     parkjy1917
08/31 7950
1384   자료구조 강좌_배열     parkjy1917
08/31 7784
1383   자료구조 강좌_자료구조의 기본 개념[1]     parkjy1917
08/31 8273
1382   네트워크 보안 강좌_무선 네트워크 보안과 취약점[3]     parkjy1917
08/28 7994
1381   네트워크 보안 강좌_세션 하이재킹     parkjy1917
08/28 7854
[1][2][3][4][5][6][7][8][9] 10 ..[79]

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