๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ”ฅ PS(Problem Solving) ๐Ÿ”ฅ/goorm

[๊ตฌ๋ฆ„LEVEL] ์ธ์‹ธ๊ฐ€ ๋˜๊ณ  ์‹ถ์€ ๋ฏผ์ˆ˜

by dar0m! 2020. 3. 16.
๋‚œ์ด๋„ ์ •๋‹ต๋ฅ 
โ˜…โ˜… 40.6%

 

 

๊ตฌ๋ฆ„LEVEL

๋‚œ์ด๋„๋ณ„ ๋‹ค์–‘ํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•จ์œผ๋กœ์จ SW ์—ญ๋Ÿ‰์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

level.goorm.io

๋ฌธ์ œ

์ •์ˆ˜ a, b๊ฐ€ ์ฃผ์–ด์ง€๋ฉด a์™€ b๋ฅผ ํฌํ•จํ•˜์—ฌ ์‚ฌ์ด์— ์žˆ๋Š” ๋ชจ๋“  ์ •์ˆ˜์˜ ์•ฝ์ˆ˜๋ฅผ ์ผ์„ ๋•Œ 1์„ ์ œ์™ธํ•˜๊ณ  ๊ฐ€์žฅ ๋งŽ์ด ๋“ฑ์žฅํ•˜๋Š” ์•ฝ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

2 ≤ a, b 1,000,000,000

 

ํ•ด๊ฒฐ

key point, ์–ด๋–ค ๊ธธ์ด 2 ์ด์ƒ์˜ ์ž„์˜์˜ ๊ตฌ๊ฐ„์ด ์ฃผ์–ด์ง€๋ฉด ๊ทธ ๊ตฌ๊ฐ„ ์•ˆ์— n์˜ ๋ฐฐ์ˆ˜๋ณด๋‹ค 2์˜ ๋ฐฐ์ˆ˜์˜ ๊ฐœ์ˆ˜๊ฐ€ ํ•ญ์ƒ ๋งŽ๊ฑฐ๋‚˜ ๊ฐ™๋‹ค.
  1. a์™€ b๊ฐ€ ๋‹ค๋ฅด๋ฉด 2์ถœ๋ ฅ.
  2. ๊ฐ™๋‹ค๋ฉด a์˜ ์•ฝ์ˆ˜ ์ค‘ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„ ์ถœ๋ ฅ.

 

์ฝ”๋“œ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
int a, b;
int leastDivisor(int num) {
    for (int i = 2; i * i <= num; i++) {
        if (!(num % i)) return i;
    }
    return num;
}
int main() {
    scanf("%d %d"&a, &b);
 
    if (a != b) printf("2");
    else printf("%d", leastdivisor(a));
 
    return 0;
}
cs

 

ํ›„๊ธฐ

์ฒ˜์Œ ๋ฌธ์ œ๋ฅผ ํ’€ ๋•Œ ์ž˜ ๋ชป ์ฝ๊ณ  a, b ๋‘ ์ˆ˜ ์˜ ์•ฝ์ˆ˜ ์ค‘ ๊ฐ€์žฅ ์ž‘์€ ์•ฝ์ˆ˜ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ๋กœ ์ดํ•ดํ•˜๊ณ  ํ’€์—ˆ์„ ๋•Œ ์–ด์ฉ์ง€ 80์ ์ด๋‚˜ ๋งž๋”๋‹ˆ ์ •๋‹ต์— 2๊ฐ€ ๋งŽ๊ธฐ ๋•Œ๋ฌธ์ด์—ˆ๋‹ค ใ…‹ใ…‹ใ…‹ใ…‹

๊ทธ ์ดํ›„์— ๊ณ ์ณค์„ ๋•Œ๋Š” ์ด์ค‘for๋ฌธ๋•Œ๋ฌธ์— ์‹œ๊ฐ„์ดˆ๊ณผ... ๋ญ”๊ฐ€ 2์ผ๊ฑฐ ๊ฐ™๋‹ค๊ณ ๋Š” ์ƒ๊ฐํ–ˆ์ง€๋งŒ ํ™•์‹คํ•˜์ง€ ์•Š์•„์„œ ๊ฒฐ๊ตญ ๋น„ํƒ€์•Œ๊ณ ๋ฅผ ํ™•์ธํ–ˆ๋‹ค. ๋น„ํƒ€์•Œ๊ณ  ์ตœ๊ณ !!

 

goorm

๊ตฌ๋ฆ„์€ ํด๋ผ์šฐ๋“œ ๊ธฐ์ˆ ์„ ์ด์šฉํ•˜์—ฌ ๋ˆ„๊ตฌ๋‚˜ ์ฝ”๋”ฉ์„ ๋ฐฐ์šฐ๊ณ , ์‹ค๋ ฅ์„ ํ‰๊ฐ€ํ•˜๊ณ , ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋Š” ํด๋ผ์šฐ๋“œ ์†Œํ”„ํŠธ์›จ์–ด ์ƒํƒœ๊ณ„์ž…๋‹ˆ๋‹ค.

www.goorm.io

 

๋Œ“๊ธ€