এই প্রোগ্রামটি একটি সংখ্যার সব জোড় ফ্যাক্টর খুঁজে বের করে এবং তাদের যোগফল গণনা করে আউটপুট হিসেবে দেখায়।
উদাহরণ:
ইনপুট: 30 জোড় ভাজক: 2+6+10+30 = 48 আউটপুট: 48
এই জন্য, আমরা সব ফ্যাক্টর বের করব। তাদের মধ্যে জোড়গুলো খুঁজে বের করব এবং যোগফল বের করব।
অথবা, আমরা প্রাইম ফ্যাক্টর ব্যবহার করে ফ্যাক্টরগুলোর যোগফল বের করার ফর্মুলা ব্যবহার করতে পারি,
Sum of divisors = (1 + d11 + d12 ... d1a1) * (1 + d21 + d22 ... d2a2) * ... * (1 + dk1 + dk2 ... dkak) এখানে di = প্রাইম ফ্যাক্টর; ai = di-এর পাওয়ার
আমাদের শুধু জোড় ফ্যাক্টর দরকার, তাই যদি সংখ্যাটি বিজোড় হলে কোনো জোড় ফ্যাক্টর থাকবে না। সেক্ষেত্রে আমরা ০ আউটপুট দেব।
উদাহরণ
#include <iostream>
#include <math.h>
using namespace std;
int main() {
int n = 12;
int m = n;
if (n % 2 != 0)
cout << "The sum of all even factors of " << n << " is " << 0;
int evfac = 1;
for (int i = 2; i <= sqrt(n); i++) {
int count = 0, curr_sum = 1, curr_term = 1;
while (n % i == 0) {
count++;
n = n / i;
if (i == 2 && count == 1)
curr_sum = 0;
curr_term *= i;
curr_sum += curr_term;
}
evfac *= curr_sum;
}
if (n >= 2)
evfac *= (1 + n);
cout << "The sum of all even factors of " << m << " is " << evfac;
return 0;
}
আউটপুট
The sum of all even factors of 12 is 24