2023年7月25日 星期二

因數分解

for n in [1500,3500,6000]:

    nb = n

    a = []

    for i in range(2,int(n**0.5)+1):

        while n%i==0:

            a.append(i)   

            n = n /i

    

    out = []

    s = set(a)

    for i in s:

        t = f'{i}^{a.count(i)}'

        out.append(t)

    out = '*'.join(out)

    out = str(nb) + '=' + out

    out = out.replace('^1','')

    print(out)

 



2023年7月12日 星期三

解題數自動統計程式

 d= """
要分析的資料放這裡
"""
d =[i for i in  d.split('\n') if len(i)>0]
d =[i for i in  d if '年' in i and '月' in i and '日' in i and '2023' in i and ':' in i]
# for i in d:
    # print(i)
dd = []
for i in d:
    t = i.split('日 ')
    time1 = t[1]
    t = t[0].split('2023年')
    name1 = t[0]
    date1 = t[1]
    tlist = [name1,date1,time1]
    dd.append(tlist)
nameList = [i[0] for i in dd if len(i[0])>0]
nameSet = set(nameList)
print(len(nameList))
ddd = []
for i in nameSet:
    ddd.append([nameList.count(i),i])
ddd.sort()
ddd.reverse()
for i in ddd:
    print(i[1],':',i[0])
    
# 共166次
# sih yu : 32
# minyu : 27
# matthew0118 : 26
# 掄 : 25
# Rex_Chen : 24
# kadzuki0314 : 21
# jack : 8
# chia : 2
...


2023年7月4日 星期二

桃園國中實作 第2題

 # 桃園國中實作 第2題


# 第二題


# 0代表海

# 1代理陸地


# 給一個坐標,若是0,則輸出0

# 若是1,則與他這個陸地相連的土地有幾個


# 輸入

# 4 5(列,行)

# 1 1坐標

# 00000

# 00000

# 00000

# 00000


# 輸出0


# 4 5

# 1 2

# 0 1 1 0 0

# 0 1 1 0 1

# 0 0 1 0 0

# 0 0 0 0  1


# 輸出5

d = '''

4 5

1 2

0 1 1 0 0

0 1 1 0 1

0 0 1 0 0

0 0 0 0  1

'''

d = d.strip().splitlines()

m,n = map(int,d[0].split())

x,y = map(int,d[1].split())


dd = d[2:]

d = []

for i in dd:

    t = [ int(j) for j in i.split() ]

    d.append(t)

if d[x][y]==0: 

    print(d[x][y])

else:

    rangeList= []

    for i in range(m):

        for j in range(n):

            rangeList.append([i,j])


    visitList = []

    t = [x,y]

  

    tryList = [t]

    while len(tryList)>0:

        t = tryList.pop()

        visitList.append(t)


        tryList = []

        for i in [-1,0,1]:

            for j in [-1,0,1]:

                if [x+i,x+j] in rangeList and  not (i !=0 and j!=0) and [x+i,x+j] not in visitList:

                    tryList.append([x+i,x+j])


        for i in tryList:

            p,q = i[0],i[1]

            if d[p][q]!=0:

                d[p][q]=d[p][q]+1


maxList = []

for i in d:

    maxList.append(max(i))

print(max(maxList))

 

# 執行結果

# 5  

桃園國中實作 第1題

 # 桃園國中實作 第1題


# 第1題

# data

# 3 4


# 1 2 5 4

# 3 2 6 7

# 4 3 7 8輸出

# 求每1列最小值

# 最後一個是最小值中的最大值

# 1

# 2

# 3

# 3



d = '''

3 4


1 2 5 4

3 2 6 7

4 3 7 8

'''

d = [i for i in d.strip().splitlines()]

d = d[2:]

r = []

for i in d:

    t = i.split()

    r.append(min(t))

for i in r:

    print(i)

print(max(r))