[伯俊]Pythonアルゴリズム練習Day 5


今日はコックス台が終わってから時間があって、たくさんの問題をしました.今はアルゴリズムの問題に少し適応した感じがします.段階的に解答を行い,まずソートを行い,その後他の過程を行う.
白駿1978号は少数を探しています
N = int(input())
num = map(int,input().split())
sosu=0
for n in num:
    count = 0
    if n>1:
        for i in range(2,n):
            if n%i ==0:
                count += 1
        if count == 0:
            sosu +=1
print(sosu)
白駿2581号小数
M = int(input())
N = int(input())
sum=0
min=0
for n in reversed(range(M,N+1)):
    count = 0
    if n>1:
        for i in range(2,n):
            if n%i ==0:
                count += 1
        if count == 0:
            sum +=n
            min = n
if sum==0:
    print(-1)
else:
    print(sum)
    print(min)
白駿11653号小因数分解
N = int(input())
count = 2 
while N!=1:
    if N%count==0:
        N/=count
        print(count)
    else:
        count+=1
白駿1929号救小数
# 에라토스테네스의 체 이용
M,N = map(int,input().split())
def prime(num):
    if num==1:
        return False
    else:
        for i in range(2, int(num**0.5)+1): # 특정 숫자의 제곱근까지만 약수의 여부 검증 (더 빠름)
            if num%i==0:
                return False
        return True
for j in range(M,N+1):
    if prime(j)==True:
        print(j)
白駿4948号バートラン姫.
'''
#시간초과코드
while True:
    N = int(input())
    if N==0:
        break
    else:
        count=0
        for i in range(N+1,2*N+1):
            if i==1:
                continue
            elif i==2:
                count +=1
                continue
            else:
                for j in range(2, int(i**0.5)+1): #for else문 을 사용하였다.
                    if i%j==0:
                        break
                else:
                    count+=1
        print(count)
'''
def prime(num):
    if num==1:
        return False
    else:
        for i in range(2, int(num**0.5)+1):
            if num%i==0:
                return False
        return True

lst = list(range(2,246912)) # 배열을 미리 만들어 놓는다
prime_lst = [] # 소수만 모아놓은 배열
for i in lst:
    if prime(i):
        prime_lst.append(i)

while True:
    N = int(input())
    if N==0:
        break
    else:
        count = 0
        for j in prime_lst:
            if N< j <=N*2:
                count+=1
        print(count)
白駿9020号金バッハの推測
def prime(num):
    if num==1:
        return False
    else:
        for i in range(2, int(num**0.5)+1):
            if num%i==0:
                return False
        return True
T = int(input())
for i in range(T):
    N = int(input())
    a = N/2
    b = N/2
    while True:
        if prime(a)==True and prime(b)==True:
            print(int(a),int(b))
            break
        else:
            a -= 1
            b += 1
白駿1085号矩形から脱出.
x,y,w,h = map(int,input().split())
print(min(x, y, w-x, h-y))
白俊3009号4時です.
x1,y1 = map(int,input().split())
x2,y2 = map(int,input().split())
x3,y3 = map(int,input().split())
if x1==x2:
    x4=x3
elif x1==x3:
    x4=x2
else:
    x4=x1

if y1==y2:
    y4=y3
elif y1==y3:
    y4=y2
else:
    y4=y1
print(x4,y4)
# 때로는 간단히 생각하는게 이로울 수도