πŸ“£ #12 μˆ˜ν•™

μ£Όλ©©Β·2021λ…„ 10μ›” 13일
0

μ•Œκ³ λ¦¬μ¦˜

λͺ©λ‘ 보기
5/5
post-thumbnail


πŸ’‘ μ†Œμˆ˜

  • 1κ³Ό 자기 μžμ‹ μœΌλ‘œλ§Œ λ‚˜λˆ μ§€λŠ” 수 = μ•½μˆ˜κ°€ 2개인 수
  • λ°˜λŒ€κ°œλ… : ν•©μ„±μˆ˜

πŸ“Œ μ†Œμˆ˜ νŒμ •λ²•

  1. μ†Œμˆ˜μ˜ μ •μ˜ 이용
    πŸ‘‰2λΆ€ν„° N-1κΉŒμ§€μ˜ 수둜 λ‚˜λˆ„μ–΄μ§€μ§€ μ•ŠλŠ” μˆ˜μ΄λ‹€.
    μ‹œκ°„ λ³΅μž‘λ„λŠ” O(N)
bool isprime(int n) {
	if (n == 1 ) return 0; //1은 μ†Œμˆ˜X
    for (int i= 2; i < n; i++) {
    	if (n % i == 0) return 0;
    }
    return 1;
}
  1. ν•©μ„±μˆ˜ Nμ—μ„œ 1을 μ œμ™Έν•œ κ°€μž₯ μž‘μ€ μ•½μˆ˜λŠ” √Nμ΄ν•˜μ΄λ‹€.
    πŸ‘‰ 2λΆ€ν„° √NκΉŒμ§€μ˜ 수둜 λ‚˜λˆ„μ–΄μ§€μ§€ μ•ŠμœΌλ©΄ μ†Œμˆ˜μ΄λ‹€.
    μ‹œκ°„λ³΅μž‘λ„λŠ” O(√n)
bool isprime(int n) {
	if (n == 1 ) return 0; //1은 μ†Œμˆ˜X
    //μ£Όμ˜ν•  점 : sqrt쓰지말기(μ‹€μˆ˜μ˜ μ €μž₯, μ—°μ‚°κ³Όμ •μ—μ„œ μ˜€μ°¨λ°œμƒν•˜κΈ°λ•Œλ¬Έμ— i*i둜 μ¨μ„œ 연산을 μ •μˆ˜μ—μ„œ μ²˜λ¦¬ν•  것)
    for (int i= 2; i*i <= n; i++) {
    	if (n % i == 0) return 0;
    }
    return 1;
}

3.κ°œμ„ 

4.μ—λΌν† μŠ€ν…Œλ„€μŠ€μ˜ 체



μ΅œλŒ€κ³΅μ•½μˆ˜

  • μž…λ ₯의 크기와 문제λ₯Ό ν•΄κ²°ν•˜λŠ”λ° ν•„μš”ν•œ κ³΅κ°„μ˜ 상관관계
    • 512MB = 1.2μ–΅κ°œμ˜ int
    • int = 4byte


πŸ‘‰ 연립합동방정식

πŸ“Œ



πŸ’‘ μ΄ν•­κ³„μˆ˜

πŸ“Œ

  • int(4 byte) : 21μ–΅ λΉ„μŠ·(2,147,483,647)
    • 10의 10제곱 μ•ˆλ¨. longlong μ“°κΈ°
  • longlong(8 byte)
    • 80번째 ν”Όλ³΄λ‚˜μΉ˜ 수λ₯Ό κ΅¬ν•˜λŠ” λ¬Έμ œμ™€ 같이 int μžλ£Œν˜•μ΄ ν‘œν˜„ν•  수 μžˆλŠ” λ²”μœ„ λ„˜μ–΄μ„œλ©΄ integer overflow 주의. λŒ€μ‹  longlong μ‚¬μš©


profile
예쁜 λ…ΈνŠΈ

0개의 λŒ“κΈ€