Số lịch sự: số nguyên dương viết được thành tổng ≥ 2 số tự nhiên liên tiếp.
Dãy: 3, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 17...
(Các số KHÔNG phải lịch sự chính là lũy thừa của 2: 1, 2, 4, 8, 16...)
Công thức
Số lịch sự thứ n: n + log₂(n + log₂(n)) (làm tròn xuống)
Triển khai C++
#include <bits/stdc++.h>
using namespace std;
int nthPoliteNumber(int n) {
double x = n;
double log2 = log(2.0);
double val = x + log(x + log(x) / log2) / log2;
return (int)val;
}
int main() {
cout << nthPoliteNumber(10) << endl; // 14
return 0;
}
Kết quả
14