[C언어] 추억의 소수 구하기

in #kr-dev5 years ago (edited)

[C언어] 추억의 소수 구하기


예전에 수학책에 나와 있는 공식들을 코딩화 하는 연습을 많이 했었네요. 그 추억을 떠올리면 공식 하나를 post으로 작성합니다.

1. 소수 구하기


소수란 약수로 1과 자기 자신의 수만 갖는 형태를 말합니다.

    t = 2;
    while(t<i)
    {
       if(i % t ==0) //나누어 떨어지는지 확인(소수 확인)
           break;
       else
           t++;
    }
    if (i==t) //임의의 i값과 비교 t값이 일치(소수)이면 결과 출력
    {
       printf("%d ",i);
    }

임의의 i가 소수인지 아닌지 확인 하기 위해서 t로 나누어 떨어지는지 if문으로 비교합니다. 이 과정을 t가 i가 될때까지 반복 비교하게 됩니다. 여기서 만약 t로 나누어 떨어지면 소수가 되지 못합니다. 그때 break문으로 while문을 빠져 나옵니다.

while문이 t가 i보다 작은 수로 빠져 나오면 나누어 떨어진 수가 있다는 의미가 되고 임임의 i수값을 출력되지 않습니다. 하지만 t가 i와 같다면 i는 소수가 되고 해당 i값은 printf문으로 결과를 출력하게 됩니다.

2. 코딩 실험


그러면 위 로직으로 임의의 소수를 구해보는 실험을 해보겠습니다.

문제 : 100까지의 소수를 모두 구하시오?

#include <stdio.h>
void main()
{
   int max = 100; //소수 체크 범위
   int i = 0;  //임의의 수
   int t = 0; //소수 비교 수

   for(i = 1; i<max; i++)
   {
      t = 2;
      while(t<i) 
      {
        if(i % t ==0) //소수 체크
           break;
        else
           t++;
      }
      if (i==t)
      {
       printf("%d ",i); //소수 결과 출력
      }
   }
   printf("\n");
}

[결과]

마무리


예전 코딩 입문기 때 이런 코딩들을 좋아했네요. 수학 공식을 토대로 로직을 짜는게 재미있네요. 코딩 감각을 키우기 용으로 수학책을 펼치고 공식들을 다 코딩화 연습을 해보시는 것이 큰 도움이 될 거에요.


Sponsored ( Powered by dclick )

dclick-imagead

Sort:  

짱짱맨 호출에 응답하였습니다.

방문해주셔서 감사해요

럭키맨 호출에 응답하였습니다. 스팀엔진에서 5000스달 확인하세요 :)

  • 본 이벤트로 받은 STEEM은 https://steem-engine.com 개인 Wallet에서 확인 가능합니다. (포스팅키 필요)

감사히 받겠습니다.

코딩의 세계는 보기만 해도 무섭네요...관심이 조금 있는데 맨 처음 시작할 때 참고할만한게 뭘까요? 기초도 모르고 완전 쌩 백지일때요...

우선 자신이 잘하는 분야를 코딩의 색을 입히는 것 부터 시작하세요.
그림을 그리는 분이나 작품을 만드는 예술쪽 분야의 사람들도 아두이노 같은 사물인터넷을 적용하여 예술 작품들을 많이 만듭니다.
자신이 젤 알하는 분야에 기초적인 부분을 코딩의 색을 입혀서 흥미를 유발 시키시면 됩니다.

학교에서 수학과 코딩을 연결시켜 공부하면 1석2조겠어요~~

컴퓨터 쪽으로 과를 나오면 기본 바탕이 수학을 가지고 코딩을 하기 때문에 땔래야 땔 수 없는 관계이지요.

Coin Marketplace

STEEM 0.15
TRX 0.12
JST 0.025
BTC 56204.99
ETH 2395.80
USDT 1.00
SBD 2.38