Computer >> Máy Tính >  >> Lập trình >> C ++

Chương trình C ++ để Tìm tổng các thừa số lẻ của một số

Cho trước với một số nguyên dương và nhiệm vụ là tạo ra các thừa số lẻ của một số và tìm ra tổng các thừa số lẻ đã cho.

Ví dụ

Input-: number = 20
Output-: sum of odd factors is: 6
Input-: number = 18
Output-: sum of odd factors is: 13

Chương trình C ++ để Tìm tổng các thừa số lẻ của một số

Vì vậy, kết quả =1 + 5 =6

Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau -

  • Nhập số để tính tổng các thừa số lẻ của số đó
  • Bỏ qua chữ số 0 và 2 vì cả hai đều là chữ số chẵn và lưu chữ số 1 vì nó là chữ số lẻ
  • Bắt đầu vòng lặp từ 3 cho đến căn bậc hai của một số
  • Di chuyển cho đến khi số% i trả về 0 và tiếp tục chia số với giá trị của i
  • Trong vòng lặp, hãy tiếp tục đặt giá trị của biến tạm thời thành temp =temp * i
  • Đặt tổng số thành tổng + nhiệt độ
  • Trả về giá trị của biến res cuối cùng và in kết quả

Thuật toán

START
Step 1-> Declare function to calculate sum of odd factors
   int sum(int num)
   declare int res = 1
   Loop While(num % 2 == 0)
      set num = num / 2
   End
   Loop For int i = 3 and i <= sqrt(num) and i++
      declare int count = 0 and total = 1
      declare int temp = 1
      Loop while (num % i == 0)
         count++
         set num = num / i
         set temp *= i
         set total += temp
      End
      set res = res*total
   End
   IF (num >= 2)
      set res *= (1 + num)
   End
   return res
Step 2-> In main()
   Declare int num = 20
   call sum(num)
STOP

Ví dụ

#include <bits/stdc++.h>
using namespace std;
//calculate sum of odd factors
int sum(int num) {
   int res = 1;
   while (num % 2 == 0)
   num = num / 2;
   for (int i = 3; i <= sqrt(num); i++) {
      int count = 0, total = 1 ;
      int temp = 1;
      while (num % i == 0) {
         count++;
         num = num / i;
         temp *= i;
         total += temp;
      }
      res = res*total;
   }
   if (num >= 2)
   res *= (1 + num);
   return res;
}
int main() {
   int num = 20;
   cout<<"sum of odd factors is : ";
   cout <<sum(num);
   return 0;
}

Đầu ra

sum of odd factors is : 6