[λ°±μ€(BOJ)] ν볡ν μμ(10434) C++
λ¬Έμ : BOJ_10434λ² ν볡ν μμ
μλΌν μ€ν λ€μ€μ 체
λ¬Έμ μ λͺ©κ³Όλ λ¬λ¦¬ μ¬λ μ°Έ λΆννκ² λ§λλ μμμ
λλ€...
μ΄ λ¬Έμ μμλ μ΄λ€ μλ₯Ό μ£Όμμ λ, λ κ°μ§ 쑰건μ λ§μ‘±νλκ°λ₯Ό νμνλ λ¬Έμ μ
λλ€.
- μ΄λ€ μκ° ν볡ν μ μΈκ°? - ν볡ν μλ μ£Όμ΄μ§ μμ κ° μλ¦Ώμμ μ κ³±μ κ³±ν΄μ λ ν΄μ£Όκ³ λμ¨ μλ₯Ό λ κ° μλ¦Ώμμ μ κ³±μ κ³±ν΄μ£Όλ λ°©λ²μ λ°λ³΅ν΄μ 1μ΄ λ μ μλ μλ₯Ό μλ―Έν©λλ€.
- μ΄λ€ μκ° μμμΈκ°? - μ¬κΈ°μ μμ νλ³μ μλ§λ€ ν΄μ€μΌ νλλ°, ν μ€νΈ μΌμ΄μ€μ μ΅λμλ 1000, κ° ν μ€νΈ μΌμ΄μ€μ μ΅λ λ²νΈλ 10000μ΄κΈ° λλ¬Έμ μλΌν μ€ν λ€μ€μ 체λ₯Ό μ΄μ©νμ§ μλλ€λ©΄ μκ° μ΄κ³Όκ° λκ³ λ§λλ€
- (μλΌν μ€ν λ€μ€μ λν μμΈν μ€λͺ μ μ΄ λΈλ‘κ·Έμ μλΌν μ€ν λ€μ€μ 체μμ λ€λ€μ΅λλ€.)
μ λ 쑰건μ λ§μ‘±νλ€λ©΄ κ·Έ ν μ€νΈ μΌμ΄μ€μ λ²νΈλ ν볡ν μμλ₯Ό λ§μ‘±ν΄μ YESκ° μΆλ ₯λκ³ μλλ©΄ NOκ° μΆλ ₯λ©λλ€.
λ¬Έμ μ 쑰건
(2) λ² μ‘°κ±΄μ μλΌν μ€ν λ€μ€μ 체λ₯Ό μ΄μ©ν΄ μμμΈμ§ μλμ§ νλ³ν΄μΌ λκ³ ,
(1) λ² μ‘°κ±΄ κ°μ κ²½μ°μ, μ£Όμ΄μ§ μλ₯Ό μλ¦Ώμμ μ κ³±μ ν©λ€λ‘ κ³μ λ°κΏλ³΄λ©΄μ
μμ ν΄μΌ λ©λλ€. μ΄λ, 1μ΄ λκΈ° μ μ κ° μλ¦Ώμμ μ κ³±λ€μ ν©μ΄ μλ μλ‘
λ°λ³΅λμ΄μ λνλλ€λ©΄ 1μ΄ λμ§ μκ³ κ³μ λ°λ³΅νλ€λ μλ―Έμ΄λ―λ‘,
(1)μ 쑰건μ λ§μ‘± λͺ» νλ κ²μ΄κ³ κ·Έμ μ 1μ΄ λλ€λ©΄ (1)μ 쑰건μ λ§μ‘±νλ κ²μ λλ€.
- (1)μ 쑰건μ λ§μ‘± λͺ» νκ³ λ°λ³΅λλ κ²½μ°λ₯Ό νμΈνλ κ²μ λ°°μ΄μ ν΅ν΄ νμΈ (dis_arr[]);
- sqrt()λ₯Ό μ¨μ μ΅λν μ μ νμλ‘ μμ νλ³ (cmath)
- κ° ν μ€νΈ μΌμ΄μ€ μμ ν μ€νΈ μΌμ΄μ€μ λ²νΈκ° μλλ° κ·Έ λ²νΈμ μκ΄μμ΄ μ λ ₯ν μ μμλλ‘ κ·Έλλ‘ μΆλ ₯ν΄μΌ λ¨!!! (ν μ€νΈ μΌμ΄μ€ μ λ²νΈλ₯Ό μμλ‘ μμλλ‘ νκΊΌλ²μ μΆλ ₯νλ©΄ μ€λ΅ μ²λ¦¬)
C++ μμ€
#include <iostream>
#include <cmath>
#include <cstring>
using namespace std;
int era[10010], dis_arr[10010], roof; // dis_arr == μλμ μλ‘ λ°λ³΅λλμ§ νμΈν΄λ³΄κΈ° μν΄ λ§λ λ°°μ΄
int happy(int x);
int main(void) {
era[0] = 1;
era[1] = 1;
for (int i = 2; i < sqrt(10000); i++) { // μ΅λν μκ°μ μ€μ΄κΈ° μν sqrt()
if (era[i] == 1) continue;
int cnt = 2;
while (cnt*i <= 10000) {
era[i*cnt] = 1;
cnt++;
}
}
cin >> roof;
for (int i = 1; i <= roof; i++) {
int a, b;
cin >> a >> b;
if (happy(b) == 1) {
if (era[b] == 0) {
cout << a << ' ' << b << ' ' << "YES" << '\n';
}
else cout << a << ' ' << b << ' ' << "NO" << '\n';
}
else cout << a << ' ' << b << ' ' << "NO" << '\n';
memset(dis_arr, 0, sizeof(dis_arr));
}
return 0;
}
int happy(int x) { // 1μ return νλ©΄ ν볡ν μ , 0μ return νλ©΄ ν볡ν μκ° μλλ€.
while (1) {
if (x == 1) return 1;
if (x == 10000) return 1;
else if (x >= 1000 && x < 10000) {
x = (x / 1000)*(x / 1000) + ((x / 100) % 10)*((x / 100) % 10) + ((x / 10) % 10)*((x / 10) % 10) + (x % 10)*(x % 10);
if (dis_arr[x] == 1) return 0;
else dis_arr[x] = 1;
continue;
}
if (x >= 100 && x < 1000) {
x = (x / 100)*(x / 100) + ((x / 10) % 10)*((x / 10) % 10) + (x % 10)*(x % 10);
if (dis_arr[x] == 1) return 0;
else dis_arr[x] = 1;
continue;
}
else if (x >= 10 && x < 100) {
x = (x / 10)*(x / 10) + (x % 10)*(x % 10);
if (dis_arr[x] == 1) return 0;
else dis_arr[x] = 1;
continue;
}
else if (x > 1 && x < 10) {
x = x * x;
if (dis_arr[x] == 1) return 0;
else dis_arr[x] = 1;
continue;
}
}
}
'Algorithm > BOJ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[BOJ] ACM Craft(1005) (0) | 2022.03.05 |
---|---|
[BOJ] μ΄λͺ¨ν°μ½(14226) (0) | 2022.03.05 |
[BOJ] μλΌμΉκΈ°(17291) (0) | 2022.03.05 |
[BOJ] λ¬Έμ μ§(1776) (0) | 2022.03.05 |
[BOJ] μ κ΅¬μΆ μμ (16437) (0) | 2022.03.05 |