Rumah > pembangunan bahagian belakang > C++ > Bilangan penglibatan dalam program C?

Bilangan penglibatan dalam program C?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2023-09-02 15:41:08
ke hadapan
899 orang telah melayarinya

Bilangan penglibatan dalam program C?

Di sini kita akan lihat nombor pertunangan. Ini ialah sepasang nombor di mana jumlah faktor sebenar satu nombor adalah 1 lebih daripada nombor lain. Kita perlu mencari pasangan ini

Sebagai contoh, pasangan ini adalah seperti (48, 75). Jadi pembahagi 48 ialah {1, 2, 3, 4, 6, 8, 12, 16, 24}, dan jumlahnya ialah 76. Begitu juga, pembahagi 75 ialah {1, 3, 5, 15, 25}, jadi jumlahnya ialah 49.

Algoritma

Pasangan Bertunang (n) -

begin
   for num in range 1 to n, do
      sum := 1
      for i in range 2 to num, do
         if num is divisible by i, then
            sum := sum + i
            if i * i is not same as num, then
               sum := sum + num / i
            end if
         end if
         if sum > num, then
            num2 := sum – 1
            sum2 := 1
            for j in range 2 to num2, do
               if num2 is divisible by j, then
                  sum2 := sum2 + j
                  if j * j is not same as num2, then
                     sum2 := sum2 + num2 / j
                  end if
               end if
            done
            if sum2 = num + 1, then
               print the pair num and num2
            end if
         end if
      done
   done
end
Salin selepas log masuk

Contoh

#include <iostream>
using namespace std;
void BetrothedPairs(int n) {
   for (int num = 1; num < n; num++) {
      int sum = 1;
      for (int i = 2; i * i <= num; i++) { //go through each number to get proper divisor
         if (num % i == 0) {
            sum += i;
            if (i * i != num) //avoid to include same divisor twice
            sum += num / i;
         }
      }
      if (sum > num) {
         int num2 = sum - 1;
         int sum2 = 1;
         for (int j = 2; j * j <= num2; j++){
            if (num2 % j == 0) {
               sum2 += j;
               if (j * j != num2)
               sum2 += num2 / j;
            }
         }
         if (sum2 == num+1)
         cout << "(" << num << ", " << num2 <<")" << endl;
      }
   }
}
int main() {
   int n = 5000;
   BetrothedPairs(n);
}
Salin selepas log masuk

Output

1
Salin selepas log masuk

Atas ialah kandungan terperinci Bilangan penglibatan dalam program C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan