Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

जाँच करें कि कोई संख्या एक Achilles संख्या है या नहीं C++ में

अवधारणा

दिए गए धनात्मक पूर्णांक n के संबंध में, कार्य यह सत्यापित करना है कि n एक अकिलीज़ संख्या है या नहीं। यदि N को अकिलीज़ नंबर माना जाता है तो हमें 'YES' प्रिंट करना होगा अन्यथा 'NO' प्रिंट करना होगा।

Achilles संख्या:गणित के संबंध में, एक Achilles संख्या को एक शक्तिशाली संख्या के रूप में परिभाषित किया जाता है (एक संख्या N को शक्तिशाली संख्या कहा जाता है यदि यह नोट किया गया है कि इसके प्रत्येक अभाज्य कारक p के लिए, 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 एक Achilles संख्या है। अन्यथा यह नहीं है।

उदाहरण

// 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. जाँच करें कि C++ में कोई बड़ी संख्या 25 से विभाज्य है या नहीं

    यहां हम देखेंगे कि किसी संख्या को 25 से विभाज्य कैसे किया जाता है या नहीं। इस मामले में संख्या बहुत बड़ी है। इसलिए हम संख्या को स्ट्रिंग के रूप में रखते हैं। एक संख्या 25 से विभाज्य होगी, जब अंतिम दो अंक 00 हों, या वे 25 से विभाज्य हों। उदाहरण #include <bits/stdc++.h> using namespace std; boo

  1. जाँच करें कि C++ में कोई बड़ी संख्या 11 से विभाज्य है या नहीं

    यहां हम देखेंगे कि किसी संख्या को 11 से विभाज्य कैसे किया जाता है या नहीं। इस मामले में संख्या बहुत बड़ी है। इसलिए हम संख्या को स्ट्रिंग के रूप में रखते हैं। यह जांचने के लिए कि क्या कोई संख्या 11 से विभाज्य है, यदि विषम स्थिति मानों का योग और सम स्थिति मानों का योग समान है, तो संख्या 11 से विभाज्य

  1. जांचें कि कोई संख्या एक अकिलीज़ संख्या है या नहीं, पायथन में

    मान लीजिए हमारे पास एक संख्या n है; हमें जांचना है कि n एक अकिलीज़ संख्या है या नहीं। जैसा कि हम जानते हैं कि एक संख्या एच्लीस संख्या होती है जब एक संख्या शक्तिशाली होती है (एक संख्या एन को शक्तिशाली संख्या कहा जाता है जब इसके प्रत्येक प्रमुख कारक पी के लिए, पी ^ 2 भी इसे विभाजित करता है) लेकिन एक प