0124 TIL

looggi·2023년 1월 24일
0

스파르타 내배캠 AI-3

목록 보기
125/130
post-thumbnail

프로그래머스 문제풀기

➡️ 소수찾기

def solution(n):
    p_cnt=0
    for i in range(2,n+1):
        count=0 
        for j in range(1,int(i**(0.5))+1):
        	if i**0.5 == round(i**0.5,1):
                break
            if i%j==0:
                count+=1
            if count>1:
                break
        if count ==1:
            p_cnt+=1
    return p_cnt    


넘 오래걸려서

if i**0.5 != round(i**0.5,1): 추가해봤는데

def solution(n):
    p_cnt=0
    for i in range(2,n+1):
        count=0 
        if i**0.5 == round(i**0.5,1):
                print(i)
                continue
        else:
            for j in range(1,int(i**(0.5))+1):
                print('----',i)
                if i%j==0:
                    count+=1
                if count>1:
                    break
            if count ==1:
                p_cnt+=1
    return p_cnt
# 또는
def solution(n):
    p_cnt=0
    for i in range(2,n+1):
        count=0 
        if i**0.5 != round(i**0.5,1):
            for j in range(1,int(i**(0.5))+1):
                if i%j==0:
                    count+=1
                if count>1:
                    print('break',i)
                    break
            if count ==1:
                p_cnt+=1
    return p_cnt        

오히려 시간이 더 오래걸림
어차피 아래 for문에서 많이 제곱근까지 가지도 않아서 걸러주는 역할을 못하는듯?

continue, break, pass

for num in range(10) :
    if num%2 == 1 :
        continue
    print("{0} 은 짝수 입니다.".format(num))

홀수일땐 print문이 실행되지 않음
break는 가장 가까운 반복문 탈출
pass는 없는 거나 마찬가지. 조건문이나 코드를 써야하는데 쓸 게 없을 때

profile
looooggi

0개의 댓글