কম্পিউটার

একটি সংখ্যা একটি অ্যাকিলিস নম্বর নাকি C++ এ নয় তা পরীক্ষা করুন


ধারণা

প্রদত্ত ধনাত্মক পূর্ণসংখ্যা n এর ক্ষেত্রে, কাজটি হল n একটি অ্যাকিলিস সংখ্যা কিনা তা যাচাই করা। আমাদের 'হ্যাঁ' প্রিন্ট করতে হবে যদি N কে অ্যাকিলিস নম্বর হিসাবে ধরা হয় অন্যথা 'না' প্রিন্ট করা হয়।

অ্যাকিলিস সংখ্যা:গণিতের সাপেক্ষে, একটি অ্যাকিলিস সংখ্যাকে এমন একটি সংখ্যা হিসাবে সংজ্ঞায়িত করা হয় যা শক্তিশালী (একটি সংখ্যা N কে শক্তিশালী সংখ্যা বলা হয় যদি এটি লক্ষ করা যায় যে এটির প্রতিটি মৌলিক ফ্যাক্টরের জন্য, p^2 এটিকে ভাগ করে) কিন্তু নিখুঁত শক্তি নয়।

অনুসরণে, প্রথম কয়েকটি অ্যাকিলিস সংখ্যা প্রদর্শিত হয়72, 108, 200, 288, 392, 432, 500, 648, 675, 800, 864, 968, 972, 1125

ইনপুট − 108

আউটপুট - হ্যাঁ

108 শক্তিশালী কারণ 6 এবং 36 উভয়ই একে ভাগ করে এবং এটি নিখুঁত বর্গ নয়।

ইনপুট − 64

আউটপুট - না

ব্যাখ্যা − 64 শক্তিশালী সংখ্যা কিন্তু নিখুঁত শক্তি।

পন্থা

  • প্রদত্ত সংখ্যা N একটি শক্তিশালী সংখ্যা কিনা তা যাচাই করুন৷

  • N একটি নিখুঁত শক্তি কিনা তা যাচাই করুন৷

  • যদি N শক্তিশালী হয় কিন্তু নিখুঁত না হয়, তাহলে N হল অ্যাকিলিস নম্বর। অন্যথায় তা নয়।

উদাহরণ

// CPP program to check Primorial Prime
#include <bits/stdc++.h>
using namespace std;
bool isPowerful1(int n1){
   while (n1 % 2 == 0) {
      int power1 = 0;
      while (n1 % 2 == 0) {
         n1 /= 2;
         power1++;
      }
      if (power1 == 1)
         return false;
      }
      for (int factor1 = 3; factor1 <= sqrt(n1); factor1 += 2) {
         int power1 = 0;
         while (n1 % factor1 == 0) {
            n1 = n1 / factor1;
            power1++;
         }
         if (power1 == 1)
            return false;
         }
         return (n1 == 1);
      }
      bool isPower1(int a1){
         if (a1 == 1)
            return true;
         for (int i1 = 2; i1 * i1 <= a1; i1++) {
            double val1 = log(a1) / log(i1);
            if ((val1 - (int)val1) < 0.00000001)
               return true;
            }
            return false;
         }
         bool isAchillesNumber1(int n1){
            if (isPowerful1(n1) && !isPower1(n1))
               return true;
            else
               return false;
         }
// Driver Program
int main(){
   int n1 = 108;
   if (isAchillesNumber1(n1))
      cout << "YES" << endl;
   else
      cout << "NO" << endl;
   n1 = 35;
   if (isAchillesNumber1(n1))
      cout << "YES" << endl;
   else
      cout << "NO" << endl;
   return 0;
}

আউটপুট

YES
NO

  1. একটি বড় সংখ্যা 3 দ্বারা বিভাজ্য বা C++ এ নয় তা পরীক্ষা করুন

  2. একটি বড় সংখ্যা 25 দ্বারা বিভাজ্য বা C++ এ নয় তা পরীক্ষা করুন

  3. একটি বড় সংখ্যা 11 দ্বারা বিভাজ্য বা C++ এ নয় তা পরীক্ষা করুন

  4. পাইথনে একটি সংখ্যা একটি অ্যাকিলিস নম্বর কিনা তা পরীক্ষা করুন