전공공부
[BOJ_21920] 서로소 평균 본문
설명
서로소를 구하는 방법은 서로 다른 수끼리 최대공약수를 구했을때 1이 나오면 서로소임을 판별한다. 우리는 이를 위해서 최대 공약수를 GCD로 구하고 진행하면된다.
평균을 구하기 때문에 ans,cnt 변수를 각각 double으로 사용했다.
코드
package Math;
import java.util.Scanner;
public class BOJ_21920 {
public static void main(String[] args) throws Exception{
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int A[] = new int[N];
for(int i = 0; i < N; i++){
A[i] = sc.nextInt();
}
int X = sc.nextInt();
double ans = 0;
double cnt = 0;
for(int i = 0; i < N; i++) {
if (GCD(A[i], X) == 1) {
ans += A[i];
cnt++;
}
}
System.out.println(ans/cnt);
}
private static int GCD(int a, int b) {
if(b == 0){
return a;
}else {
return GCD(b, a % b);
}
}
}
21920번: 서로소 평균
첫 번째 줄에 입력될 수들의 개수 $N$이 주어진다. $(2 \le N \le 500,000)$ 두 번째 줄에는 수열 $A$를 이루는 자연수 $A_{i}$ 가 공백으로 구분되어 주어진다. $(2 \le A_{i} \le 1,000,000)$ 수열 $A$에 $X$와 서로
www.acmicpc.net
'Study > Problem Solving' 카테고리의 다른 글
[BOJ_10171] 고양이 (1) | 2023.11.24 |
---|---|
[BOJ_21919] 소수 최소 공배수 (2) | 2023.11.23 |
[BOJ_4134] 다음 소수 (3) | 2023.11.21 |
[BOJ_2960] 에라토스테네스의 체 (1) | 2023.11.20 |
[BOJ_5347] LCM (0) | 2023.11.19 |