파이썬 소수 개수 구하기 - paisseon sosu gaesu guhagi

소수의 개수 구해보기.

2이상 1000이하 자연수의 집합에서 소수의 개수를 구하는 알고리즘을 작성하시오.

에라토스테네스의 체

90개의 풀이가 있습니다. 1 / 9 Page

  • 최신순
  • 추천순

def prime(n):
    count = n-1
    for i in range(2,n+1):
        for x in range(2,i):
            if i % x == 0:
                count -= 1
                break
    return count

print(prime(1000))

numbers=list(range(3,1000,2))

for i in numbers:
    for j in range(2,1000//i+1):
        if i*j in numbers:
            numbers.remove(i*j)
        else:
            pass
print(numbers)
print(len(numbers))

def prime(n):
    pnl = prime_number_list = [2]
    for i in range(3,n+1):
        if min([i%x for x in pnl]) != 0: pnl.append(i)
    return len(pnl)

%time prime(100000)

CPU times: user 21.6 s, sys: 1.18 s, total: 22.8 s Wall time: 22.8 s 오래 걸리네요.. 다른 방법을 찾아봐야겠다.. - 로만가, 2022/02/16 10:31 M D

'''
2이상 1000이하 자연수의 집합에서 소수의 개수를 구하는 알고리즘을 작성하시오.
'''

list = [ i for i in range(2,1001)]
result =[]

def divide(num):
    for i in range(2,1001):
        if (num % i == 0) and (num>i):
            result.append(list[i])
            break

for i in range(2,1000):
    divide(i)

print(999-len(result))

cnt =0
for i in range(2,1001) :
    n =0
    for k in range(1,i+1):
        if i%k == 0:
            n+=1
    if n==2:
        cnt +=1

print(cnt)

약수의 수가 2개인 애들로 구해봤는데 1000이하의 자연수에서는 제일 간단하지 않을까싶네요

def decimal(a):
    count = 0
    for i in range(2,a+1):
        cnt = 0
        for  c in range(1,i+1):
            if i%c == 0:
                cnt += 1
        if cnt == 2:
            count += 1

    return count       

if __name__ == '__main__':
    a = int(input())
    print(decimal(a))

#codingdojing_primeNum

from math import sqrt

prime = []

for i in range(2,1001):
    flag = True
    for j in range(2, round(sqrt(i)+1)):
        if i%j == 0: 
            flag = False
            break
    if flag:
        prime.append(i)

print(prime)


python 3.9.6입니다.

# 소수의 개수 구해보기

a = list(range(2, 1001))
for num in range(2, int(1000**0.5)+1):
    for number in a:
        if not number % num and number // num >= 2: a.remove(number)
print(len(a))

실행 결과: 168

mir = 0
for i in range(2,1000):
    l=[]
    for a in range(1,i+1):
        if i%a==0: l.append(i)
    if len(l)==2: mir+=1
print(mir)

def sosu(num):
    indicator = 0
    for i in range(2, int(num)):
        if int(num) % i == 0:
            indicator = 1
    if indicator == 0:
        return True

result = []
for i in range(2,1001):
    if sosu(i):
        result.append(i)

print('Total : {}'.format(len(result)))

풀이 작성

※ 풀이작성 안내

  • 본문에 코드를 삽입할 경우 에디터 우측 상단의 "코드삽입" 버튼을 이용 해 주세요.
  • 마크다운 문법으로 본문을 작성 해 주세요.
  • 풀이를 읽는 사람들을 위하여 풀이에 대한 설명도 부탁드려요. (아이디어나 사용한 알고리즘 또는 참고한 자료등)
  • 작성한 풀이는 다른 사람(빨간띠 이상)에 의해서 내용이 개선될 수 있습니다.


Computer Engineering/Algorithm

파이썬 알고리즘) 파이썬 소수 갯수 구하기

2017. 10. 17. 20:24


https://programmers.co.kr/
 의 

모든 파이썬 알고리즘 문제를 푸는 것을 목표로 삼고,

문제를 풀고 있습니다.

파이썬으로 1부터 N 사이의 소수의 개수 구하기

파이썬 소수 개수 구하기 - paisseon sosu gaesu guhagi

언제든지 조언은 감사히 듣겠습니다.

감사합니다.