๐Ÿ–‡๏ธ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์Šคํ„ฐ๋”” 2์ฃผ์ฐจ

์ตœ์ง€์›ยท2023๋…„ 7์›” 18์ผ
0

์•Œ๊ณ ๋ฆฌ์ฆ˜

๋ชฉ๋ก ๋ณด๊ธฐ
2/7

02-2์žฅ. ๋ฐฐ์—ด์ด๋ž€

-๋ฐฐ์—ด์˜ ์›์†Ÿ๊ฐ’์„ ๋‚œ์ˆ˜๋กœ ๊ฒฐ์ •ํ•˜๊ธฐ+์ตœ๋Œ“๊ฐ’ ์›์†Œ ๊ตฌํ•˜๊ธฐ

import random
from max import max_of        #max๋ผ๋Š” ๋ชจ๋“ˆ๋กœ๋ถ€ํ„ฐ max_of๋ž€ ํ•จ์ˆ˜ ์ž„ํฌํŠธ

print('๋‚œ์ˆ˜์˜ ์ตœ๋Œ“๊ฐ’์„ ๊ตฌํ•ฉ๋‹ˆ๋‹ค.')
num=int(input('๋‚œ์ˆ˜์˜ ๊ฐœ์ˆ˜:'))
lo=int(input('๋‚œ์ˆ˜์˜ ์ตœ์†Ÿ๊ฐ’:'))
hi=int(input('๋‚œ์ˆ˜์˜ ์ตœ๋Œ“๊ฐ’:'))
x=[None]*num      #์›์†Œ ์ˆ˜๊ฐ€ num์ธ ๋นˆ ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ

for i in range(num):
	x[i]=random.randint(lo,hi)      #lo ์ด์ƒ hi ์ดํ•˜์ธ ์ •์ˆ˜ ๋‚œ์ˆ˜ ๋ฐ˜ํ™˜
    
print(f'{(x)}')
print(f'์ด ๊ฐ€์šด๋ฐ ์ตœ๋Œ“๊ฐ’์€ {max_of(x)}.')

-๋ฆฌ์ŠคํŠธ, ํŠœํ”Œ์˜ ๋Œ€์ž…
: ๋ฆฌ์ŠคํŠธ๋ฅผ ๋‘ ๊ฐœ ์„ ์–ธํ•˜๊ณ  ์„œ๋กœ ๋Œ€์ž…ํ•ด๋„ ๋ณต์‚ฌ๋˜๋Š” ๊ฒƒ์€ ๊ฐ’์ด ์•„๋‹ˆ๋ผ ์ฐธ์กฐํ•˜๋Š” ๊ณณ

-๋ฆฌ์ŠคํŠธ ์Šค์บ”
: enumerate() ํ•จ์ˆ˜๋Š” ์ธ๋ฑ์Šค์™€ ์›์†Œ๋ฅผ ์ง์ง€์–ด ํŠœํ”Œ๋กœ ๊บผ๋‚ด๋Š” ๋‚ด์žฅ ํ•จ์ˆ˜

-๋ฐฐ์—ด ์›์†Œ๋ฅผ ์—ญ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๊ธฐ

for i in range(n//2):
	a[i], a[n-i-1]=a[n-i-1], a[i]

-๊ธฐ์ˆ˜ ๋ณ€ํ™˜ํ•˜๊ธฐ(n์ง„์ˆ˜ ๊ตฌํ•˜๊ธฐ)

def card_conv(x: int, r: int) ->str:	
#์ •์ˆ˜ x๋ฅผ r์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ๊ทธ ์ˆ˜๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜

	d=''	#๋ณ€ํ™˜ ํ›„์˜ ๋ฌธ์ž์—ด
    dchar= '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    
    while x>0:
    	d+=dchar[x%r]	#ํ•ด๋‹นํ•˜๋Š” ๋ฌธ์ž๋ฅผ ๊บผ๋‚ด ๊ฒฐํ•ฉ
        x//=r
        
    return d[::-1]		#์—ญ์ˆœ์œผ๋กœ ๋ฐ˜ํ™˜

-ํŒŒ์ด์ฌ์—์„œ ์ธ์ˆ˜ ์ „๋‹ฌ
: ์‹ค์ œ ์ธ์ˆ˜์ธ ๊ฐ์ฒด์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ๊ฐ’์œผ๋กœ ์ „๋‹ฌํ•˜์—ฌ ๋งค๊ฐœ๋ณ€์ˆ˜์— ๋Œ€์ž…๋˜๋Š” ๋ฐฉ์‹

์ธ์ˆ˜๊ฐ€ ์ด๋ฎคํ„ฐ๋ธ”์ผ ๋•Œ-> ํ•จ์ˆ˜ ์•ˆ์—์„œ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋ฉด ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๊ทธ ๊ฐ์ฒด์— ๋Œ€ํ•œ ์ฐธ์กฐ๋กœ ์—…๋ฐ์ดํŠธ ๋จ. ํ˜ธ์ถœํ•˜๋Š” ์ชฝ์˜ ์‹ค์ œ ์ธ์ˆ˜์—๋Š” ์˜ํ–ฅ์„ ์ฃผ์ง€ x

์ธ์ˆ˜๊ฐ€ ๋ฎคํ„ฐ๋ธ”์ผ ๋•Œ-> ๊ฐ์ฒด ์ž์ฒด๋ฅผ ์—…๋ฐ์ดํŠธํ•จ. ํ˜ธ์ถœํ•˜๋Š” ์ชฝ์˜ ์‹ค์ œ ์ธ์ˆ˜๋Š” ๊ฐ’์ด ๋ณ€๊ฒฝ๋จ.

-์†Œ์ˆ˜ ์ €์žฅํ•˜๊ธฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜

counter=0	#๋‚˜๋ˆ—์…ˆ ํšŸ์ˆ˜ ์นด์šดํŠธ
ptr=0		#์ด๋ฏธ ์ฐพ์€ ์†Œ์ˆ˜ ๊ฐœ์ˆ˜
prime=[None]*500	#์†Œ์ˆ˜๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐฐ์—ด

prime[ptr]=2	#์†Œ์ˆ˜ 2 ์ดˆ๊นƒ๊ฐ’์œผ๋กœ ์ง€์ •
ptr+=1

for n in range(3, 1001, 2)		#ํ™€์ˆ˜๋งŒ ๋Œ€์ƒ์œผ๋กœ ์„ค์ •
	for i in range(i, ptr):		#์ด๋ฏธ ์ฐพ์€ ์†Œ์ˆ˜๋กœ ๋‚˜๋ˆ„๊ธฐ
    	counter+=1
        if n%prime[i]==0:		#๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋ฉด ์†Œ์ˆ˜๊ฐ€ ์•„๋‹˜
        	break				#๋ฐ˜๋ณต ์ค‘๋‹จ
    else:
    	prime[ptr]=n			#์†Œ์ˆ˜๋กœ ๋ฐฐ์—ด์— ์ถ”๊ฐ€
        ptr+=1
        
for i in range(ptr):
	print(prime[i])
print(f'๋‚˜๋ˆ—์…ˆ์„ ์‹คํ–‰ํ•œ ํšŸ์ˆ˜: {counter}')

-"์–ด๋–ค ์ •์ˆ˜ n์€ n์˜ ์ œ๊ณฑ๊ทผ ์ดํ•˜์˜ ์–ด๋–ค ์†Œ์ˆ˜๋กœ๋„ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€์ง€ ์•Š์œผ๋ฉด ์†Œ์ˆ˜๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค"
=> ์ œ๊ณฑ๊ทผ๋ณด๋‹ค ์ œ๊ณฑ์ด ๊ตฌํ•˜๊ธฐ ํ›จ์”ฌ ๊ฐ„๋‹จํ•˜๋ฏ€๋กœ ์—ญ์œผ๋กœ ์ด์šฉ

counter=0					#๊ณฑ์…ˆ๊ณผ ๋‚˜๋ˆ—์…ˆ์„ ํ•ฉํ•œ ํšŸ์ˆ˜
ptr=0
prime=[None]*500

prime[ptr]=2
ptr+=1

prime[ptr]=3
ptr+=1

for n in range(5, 1001, 2):
	i=1
    while prime[i]*prime[i] <= n:
    	counter+=2
        if n%prime[i]==0:	#๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋ฏ€๋กœ ์†Œ์ˆ˜๊ฐ€ ์•„๋‹˜
        	break
        i+=1
    else:					#๋๊นŒ์ง€ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€์ง€ ์•Š์•˜๋”ฐ๋ฉด
    	prime[ptr]=n		#์†Œ์ˆ˜๋กœ ๋ฐฐ์—ด์— ๋“ฑ๋ก
        counter+=1

for i in range(ptr):
	print(prime[i])

++105p RE

1๊ฐœ์˜ ๋Œ“๊ธ€

comment-user-thumbnail
2023๋…„ 7์›” 19์ผ

์ •๋ง ์ข‹์€ ๊ธ€ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

๋‹ต๊ธ€ ๋‹ฌ๊ธฐ