Problem Solving with Algorithms

반응형

300 - 수학 1

나머지

//첫째 줄에 (A+B)%C, 둘째 줄에 ((A%C) + (B%C))%C, 셋째 줄에 (A×B)%C, 넷째 줄에 ((A%C) × (B%C))%C를 출력한다.

import java.util.*;
public class Main{
	public static void main(String args[]){
		Scanner sc = new Scanner(System.in);
		int A, B, C;
		A = sc.nextInt();
		B = sc.nextInt();
        C = sc.nextInt();
		System.out.println("" + (A+B)%C);
        System.out.println("" + ((A%C) + (B%C))%C);
        System.out.println("" + ((A*B)%C));
        System.out.println("" + (((A%C) * (B%C))%C));
	}
}
   

 

최대공약수와 최소공배수

수학적 설명: mathbang.net/204#:~:text=%EB%91%90%20%EC%88%98%EB%A5%BC%20%EC%A0%81%EA%B3%A0%2C%20%EC%84%9C%EB%A1%9C,%EC%84%9C%EB%A1%9C%EC%86%8C%EA%B9%8C%EC%A7%80%20%EA%B3%B1%ED%95%98%EB%8A%94%20%EA%B1%B0%EC%98%88%EC%9A%94.

import java.util.*;

public class Main {

    public static int gcd(int x, int y) {

        if(y == 0) {
            return x;
        } else {
            return gcd(y, x%y);
        }
    }

    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        int g = gcd(a,b);
        int l = a*b / g;
        System.out.println(g);
        System.out.println(l);
    }
}

 


최소공배수

import java.util.*;
public class Main{
    private static int gcd(int x, int y) {
        if(y == 0)
            return x;
        return gcd(y, x%y);
    }
	public static void main(String args[]){
		Scanner sc = new Scanner(System.in);
        int t = sc.nextInt();
        while(t-- > 0) {
           int a, b;
		   a = sc.nextInt();
		   b = sc.nextInt();
		
           int num = gcd(a, b);
           System.out.println("" + a*b/num);
        }

	}
}

 

유클리드호제법: 

namu.wiki/w/%EC%9C%A0%ED%81%B4%EB%A6%AC%EB%93%9C%20%ED%98%B8%EC%A0%9C%EB%B2%95

 

 

 

소수 찾기

 

 

 

소수 구하기

 

 

 

골드바흐의 추측

 

 

 

팩토리얼

 

 

 

팩토리얼 0의 개수

 

 

 

조합 0의 개수

 

 

 

 

위의 문제들은 아래의 블로그에 설명이 잘되어있다. instories.tistory.com/23


301 - 수학 1 (연습)

 

instories.tistory.com/24


303 - 수학 1 (참고)

 

 


구) 중급-수학 강의 설명

 

수학 2는 알고리즘 보다는 다른 문제를 풀 때 필요한 경우가 많아서 배우는 부분입니다.

a^b 제곱 연산을 분할 정복 알고리즘을 이용해서 구하는 방법, 이진수의 원리를 이용해서 구하는 방법을 배웁니다.

그 다음은 행렬에 대한 내용을 간단히 짚고 넘어갑니다.

이제, 피보나치에 관심있는 사람들이 가장 재미있어하는 내용입니다. 바로 피보나치 수에 대해서 배웁니다. 피보나치 수를 구하는 다양한 방법, 피사노 주기, 피보나치 수의 다양한 성질, 피보나치 수를 행렬을 이용해서 구하는 방법을 배웁니다.

이제, 이항 계수를 배울 차례입니다. 이항 계수와 그 응용을 어떻게 하는 지 배웁니다. 여기에서 파스칼의 삼각형도 다루고 넘어갑니다.

카탈란 수에 대해서 들어본 적이 있나요? 이번 챕터에서 배울 수 있습니다!

오일러 피 함수가 무슨 함수인지 아나요? 이 내용도 이번 챕터에서 배울 수 있습니다.

두 수를 나눌 때, 나머지 연산을 어떻게 해야하는지 배우는 챕터가 바로 여기에 있습니다. 수학 1에서는 덧셈, 뺄셈, 곱셈에 대한 나머지 연산만 배우기 때문에, 나눗셈에서 나머지 연산을 하려면 이번 챕터를 꼭 들어야 합니다. 이 내용을 위해 확장 유클리드 알고리즘을 배웁니다.

반응형
반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band