성장일기

[python] 백준 21920 - 서로소 평균 본문

알고리즘 문제

[python] 백준 21920 - 서로소 평균

김몽몽 2022. 1. 9. 21:30

첫번째 줄에 수의 개수

두번째 줄에 수열

마지막 줄에 X

수열에서 X와 서로소인 수들의 평균 출력

🎇절대/상대 오차는 10^-6까지 허용

 

🧨lcm(a,b)==a*b / gcd(a,b)==1

위의 식을 이용해서 서로소인것을 따로 리스트에 넣어주기

막힘 없이 풀었으나 마지막 오차에서 막혔다.

소수점 출력해주면 된다!

import sys
input=sys.stdin.readline

def gcd(a,b):
    if b==0:
        return a
    else:
        return gcd(b,a%b)
def lcm(a,b):
    return (a*b)//gcd(a,b)
#서로소: lcm(a,b)==a*b or gcd(a,b)==1

n=int(input().rstrip()) #수의 개수
a=list(map(int,input().split()))  #수열
x=int(input().rstrip())  #x

mean=[]
for i in range(n):
    if a[i]!=x: #x와 같은 수가 아니면서
        if gcd(a[i],x)==1: #gcd(a,b)==1인 것
            mean.append(a[i])

print('{:.6f}'.format(sum(mean)/len(mean)))  #표준오차,,

'알고리즘 문제' 카테고리의 다른 글

[python] 백준 17390 - 이건 꼭 풀어야해!  (0) 2022.01.11
[python] 백준 11441 - 합 구하기  (0) 2022.01.11
[python] 백준 13412 - 서로소 쌍  (0) 2022.01.08
실버 1 🎉  (0) 2022.01.08
[python] 백준 5430 - AC  (0) 2022.01.08