게임강의
기타게임 분류

[C를 활용한 문제해결 기법의 근간] 학습용!! 2자리소수

컨텐츠 정보

본문

백준에 있는 문제로 응용된 케이스...

공부용으로 쓰세요~

 

#define _CRE_SECURE_NO_WARNINGS
#pragma warning(disable:4996)
#include <stdio.h>
#include <string.h>
int main(void) {
    FILE *input_file = fopen("2digit_prime.inp", "r");
    FILE *output_file = fopen("2digit_prime.out", "w");
    int arr[21] = { 0 }; //소수 배열
    int c; //조합경
    int T = 0; //몇번돌림
    int x = 0;//소수 보조
    //char count; //받아온값 카운트에넣기
    int cnt = 0; //소수일때 카운트
    char buf[6] = { 0 }; // 버퍼 6칸
    int a = 0; //a값 받아오기
    int b = 0; //b값 받아오기
    int cnt2 = 0; //a-b 까지 소수갯수
    int temp = 0;
    for (int q = 10; q < 100; q++) {
        if (q % 2 != 0 && q % 3 != 0 && q % 5 != 0 && q % 7 != 0) {
            arr[x] = q;
            x++;
        }
    }
    fscanf(input_file, "%d", &T);
    for (int q = 0; q < T; q++) {
        fscanf(input_file, "%d%d\n", &a, &b);
        for (a; a <= b; a++) {
            temp = a;
            sprintf(buf, "%d", temp);//numbering은 저장할 char형 배열. a는 바꿔야 되는 int 부분.
            for (int j = 0; j <strlen(buf); j++) {
                if (buf[j]-48 == 0) {//십의자리0일때 걸러주고
                    continue;
                }
                for (int k = 0; k < strlen(buf); k++) {
                    if (buf[k]-48 == 0) {
                        continue;
                    }
                    //십의자리 0일때 걸러주고
                    if (j == k) {
                        continue;
                    }
                    for (int f = 0; f < 21; f++) {
                        c = (buf[j] - 48) * 10 + (buf[k] - 48);
                        if (c == arr[f]) {
                            cnt = 1;
                            break;
                        }
                    }
                    if (cnt == 1) {
                        break;
                    }
                }
                if (cnt == 1) {
                    break;
                }
               
            }
            if (cnt == 1) {
                cnt2++;
            }
            cnt = 0;
            }
        while (buf[cnt] != NULL) {
            buf[cnt++] = NULL;
        }
        fprintf(output_file, "%d\n", cnt2);
        cnt2 = 0;
    }
}

관련자료

댓글 0
등록된 댓글이 없습니다.
전체 658 / 1 페이지
번호
제목
이름

강의실

🏆 포인트 랭킹 TOP 10
순위 닉네임 포인트
1 no_profile 타키야겐지쪽지보내기 자기소개 아이디로 검색 전체게시물 147,509
2 no_profile 보거스쪽지보내기 자기소개 아이디로 검색 전체게시물 91,378
3 no_profile 검은고양이쪽지보내기 자기소개 아이디로 검색 전체게시물 64,195
4 서번트쪽지보내기 자기소개 아이디로 검색 전체게시물 59,621
5 no_profile 불멸의행복쪽지보내기 자기소개 아이디로 검색 전체게시물 57,281
6 no_profile 동가리쪽지보내기 자기소개 아이디로 검색 전체게시물 54,964
7 no_profile 라프텔쪽지보내기 자기소개 아이디로 검색 전체게시물 52,661
8 no_profile Gatchaman쪽지보내기 자기소개 아이디로 검색 전체게시물 45,503
9 no_profile 닥터스쪽지보내기 자기소개 아이디로 검색 전체게시물 35,020
10 no_profile Revolution쪽지보내기 자기소개 아이디로 검색 전체게시물 29,199
알림 0