๋์ด๋ | ์ ๋ต๋ฅ |
โ โ | -% |
ํ๋ฆฌ๋ฏธ์ ์๊ณ ๋ฆฌ์ฆ ์ํด๋ฆฌ ๋นํ์๊ณ ์์ฆ3 4์ฃผ์ฐจ
๋ฌธ์
ํด๊ฒฐ
- 1์ ์์๊ฐ ์๋๋ ์ ์ธํ๊ณ 2๋ถํฐ ์์.
- i๋ก ๋๋์ด์ง๋ n์ ๋ํ์ฌ
- i๊ฐ ์์์ด๊ณ , (n / i)๋ ์์๋ผ๋ฉด ๊ฑธ๋ฌ์ง๋ค → 1
- i๋ (n / i)์ค ํ๋๋ผ๋ ์์๊ฐ ์๋๋ผ๋ฉด ํด๋น n์ ๋ง๊ฐ์ง ์๋ผํ ์คํ ๋ค์ค์ ์ฒด์ ๊ฑธ๋ฌ์ง์ง ์๋๋ค. → 0
- i*i๊ฐ n์ผ ๋๊น์ง ๋ฐ๋ณต๋ฌธ์ ๋๋ฉด์ ํ ๋ฒ์ด๋ผ๋ ๋๋์ด์ง๋ i๋ฅผ ๋ฐ๊ฒฌํ์ง ๋ชปํ๋ค๋ฉด ๊ทธ ์๋ ๊ทธ ์์ฒด๋ก ์์์ด๋ค. → 1
์ฝ๋
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
typedef long long ll;
ll n;
bool isPrime(ll num) {
for (ll i = 2; i * i <= num; i++) {
if (!(num % i)) return 0;
}
return 1;
}
int main() {
scanf("%lld", &n);
if (n == 1) {
printf("0");
return 0;
}
for (ll i = 2; i * i <= n; i++) {
if (!(n % i)) {
if (isPrime(i) && isPrime(n / i)) {
printf("1");
return 0;
}
else { // ํ๋๋ผ๋ ๋๋ ์ง๋๋ฐ ์์๋ค์ ๊ณฑ์ด ์๋๋ฉด 0
printf("0");
return 0;
}
}
}
printf("1");
return 0;
}
|
cs |
1๋ถํฐ ์์ํ๋ ๊ฒฝ์ฐ
1๋ถํฐ ํ์ธํ๋ ๊ฒฝ์ฐ์๋ ์์ํ๋ณํ๋ ํจ์์ธ isPrime์์ 1์ผ ๋ 0์ ๋ฐํํ๋ ๋ฌธ์ฅ์ ์ถ๊ฐํด์ผ ํ๋ค.
bool isPrime(ll num) {
if (num == 1) return 0;
for (ll i = 2; i * i <= num; i++) {
if (!(num % i)) return 0;
}
return 1;
}
'๐ฅ PS(Problem Solving) ๐ฅ > goorm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๊ตฌ๋ฆLEVEL] ์จ๋ผ์ธ ๊ฐ์ (0) | 2020.04.01 |
---|---|
[๊ตฌ๋ฆLEVEL] ํํ (0) | 2020.04.01 |
[๊ตฌ๋ฆLEVEL] ๋ฒฝ ํต๊ณผํ๊ธฐ (0) | 2020.03.25 |
[๊ตฌ๋ฆLEVEL] ๋ฏธ๋ก์ฐพ๊ธฐ (0) | 2020.03.24 |
[๊ตฌ๋ฆLEVEL] ๋ณ๋ค์ ์ ์ (0) | 2020.03.24 |
๋๊ธ