حل الگوریتم تشخیص عداد کامل در زبان C++



حل الگوریتم تشخیص عداد کامل در زبان C++


در نخست برای اینکه واضح باشد برای همه  منظور از اعداد کامل اعدادی میباشد که مجمموعه مقسوم های عدد بجز خودش مساوی به خود عدد شود عدد کامل گفته میشود.

در نخست الگوریتم عداد کامل ره مینویسیم که قرار ذیل میباشد.

1.      شروع
2.      n را از ورودی بخوان
3.      0 را در sum قرار بده و 1 را در i قرار بده
4.      اگر n % i = 0 انگاه sum + i را در sum قرار بده
5.      i + 1 را در i قرار بده
6.      اگر i<n انگاه برو به خط 4
7.      اگر sum = n انگاه چاپ کن عدد کامل است درغیر این صورت چاپ کن کامل نیست
8.      پایان

در این الگوریتم ما نیاز به 2 متغییر داریم از جنس int که در این مثال n , sum تعریف شده است.
متغییر n عدد را از ورودی دریافت نموده و در خود ذخیر میکند با دستور cin
متغییر sum مجموعه مقسوم ها را در خود ذخیره می نماید.
و یک متغییر دگر برای تکرار شمار نمودن دفعات تقسیم ما نیاز داریم که در مثال i تعریف شده و در خود پیش فرض عدد 1 را ذخیره کرده است.

سوالات تانرا در کامنت بنویسید!

#include <iostream>
using namespace std;
int main(){
  int n,sum;
  sum = 0;
  std::cout << "Enter a Number:" << '\n';
  std::cin >> n;
  for (int i = 1; i < n; i++) {
    if (n%i == 0) {
      sum = sum + i;
    }
  }
  if (sum == n) {
    std::cout << "This Number is Tam" << '\n';
  }else{
    std::cout << "This Number is Not Tam" << '\n';
  }
}

Comments

Post a Comment