본문바로가기
함께 풀고 싶은 문제
창의력을 기를 수 있는 수학 문제 또는 퍼즐을 내는 곳입니다.
[창의 퍼즐] 소수 찾기 알고리즘
집돌이 페렐만 2020.02.12 02:01 조회 706

python으로 소수 찾기 프로그램을 만드는 건 비교적 쉬운 일이다. 예를 들어 1부터 100까지의 소수의 개수를 찾는 프로그램의 코드의 예로 다음의 2가지 방법이 있다.

1. 노가다 식 페렐만 코드

a = 1 aa = [2, 3, 5] bb = [] x = int(input("1부터 몇까지의 소수를 찾을까요?")) x = x + 1 for b in range(6, x):     a = b // 2 + 1     for c in range(2, a):         if b % c != 0:             if c == a - 1:                 aa.append(b)         else:             break          print(aa) print("1과", x -1, "사이에는", len(aa), "개의 소수가 있습니다.")

//이 코드에서는 2, 3, 5 3개의 소수를 미리 저장한 뒤 그 합성수를 구성하는 소수는 항상 그 수보다 작다는 점을 이용했다

2. 이건 인터넷에서 가져온 코드이다.

출처: https://hongku.tistory.com/274 [IT에 취.하.개.]

 

이 코드의 경우 모듈을 가져왔기 때문에 절반 정도 길이가 줄어들었다.

 

 

 

문제 : 1부터 100사이의 소수의 개수를 구하는 프로그램을 짜시오. 단, 모듈을 사용해서는 안된다.

프로그램을 돌렸을 때 오류가 없어야 하고(참고로 전 IDLE를 씁니다) 2월 15일에 가장 짧게 코드를 짠 2명에게 해결을 주도록 하겠다.

위에 있는 코드들은 배끼지 말고 코드의 엔터 역시 오류가 없는 선에서 최대한 줄여야 한다.

이 문제 어떠셨나요?

글쎄요

0

어려워요

0

  •  
    Rain Lv.5 2020.02.12 06:51 비밀댓글
    확인요청중
    비밀 댓글이 등록 되었습니다.
    댓글 작성하기 댓글수0
  • 폴리매스 문제는 과학기술진흥기금 및 복권기금의 재원으로 운영되고, 과학기술정보통신부와 한국과학창의재단의 지원을 받아 수행된 성과물로 우리나라의 과학기술 발전과 사회적 가치 증진에 기여하고 있습니다.

  • ☎문의 02-6749-3911