Files
contests/misc/others/beauty.cpp

67 lines
1004 B
C++

#include <bits/stdc++.h>
using namespace std;
const int maxc = 50000;
char check[maxc + 1];
vector<int> prime;
void sieve() {
for (int i = 0; i < maxc; i++)
check[i] = 1;
check[0] = 0;
check[1] = 0;
for (int i = 2; i * i < maxc; i++)
if (check[i])
for (int j = i * i; j < maxc; j += i)
check[j] = 0;
for (int i = 2; i < maxc; i++) {
if (check[i])
prime.push_back(i);
}
}
int is_db(int n) {
int m = n;
vector<int> factor;
for (int i = 0; i < prime.size() && prime[i]*prime[i]<=n;i++) {
while (n % prime[i] == 0) {
factor.push_back(prime[i]);
n /= prime[i];
}
}
factor.push_back(n);
int facsum = 0;
for (auto i : factor) {
while (i) {
facsum += i % 10;
i /= 10;
}
}
int sum = 0;
while (m) {
sum += m % 10;
m /= 10;
}
if (sum == facsum) {
return 1;
}
return 0;
}
int main() {
int n;
cin >> n;
n++;
sieve();
while (!is_db(n)) {
n++;
}
cout << n << "\n";
}