মনে করুন, আমাদের একটি পূর্ণসংখ্যা N আছে। আমাদের 1 < x < N এর মধ্যে যেসব পূর্ণসংখ্যা x-এর জন্য x এবং x + 1-এর ধনাত্মক ভাজকের সংখ্যা সমান, তাদের সংখ্যা বের করতে হবে। তাই যদি N = 3 হয়, তবে আউটপুট হবে 1, কারণ 1-এর ভাজক 1, 2-এর ভাজক 1 এবং 2, এবং 3-এর ভাজক 1 এবং 3।
এটি সমাধানের জন্য, আমরা N-এর নিচের সব সংখ্যার ভাজকের সংখ্যা বের করব এবং একটি অ্যারেতে সংরক্ষণ করব। তারপর লুপ চালিয়ে x এবং x + 1-এর ভাজকের সংখ্যা সমান কিনা চেক করব।
উদাহরণ
#include <iostream>
#include <cmath>
#define N 100005
using namespace std;
int table[N], pre[N];
void findPositiveDivisor() {
for (int i = 1; i < N; i++) {
for (int j = 1; j * j <= i; j++) {
if (i % j == 0) {
if (j * j == i)
table[i]++;
else
table[i] += 2;
}
}
}
int ans = 0;
for (int i = 2; i < N; i++) {
if (table[i] == table[i - 1])
ans++;
pre[i] = ans;
}
}
int main() {
findPositiveDivisor();
int n = 15;
cout << "Number of integers: " << pre[n] << endl;
}
আউটপুট
Number of integers: 2