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

X के सभी संभावित मानों की गणना इस प्रकार करें कि C++ में A % X =B

दो पूर्णांक A और B और एक संख्या X को देखते हुए। लक्ष्य उन मानों की गणना करना है जो X के पास हो सकते हैं ताकि A%X=B हो। उपरोक्त समीकरण के लिए यदि, A==B तो X के अनंत मान संभव हैं, इसलिए -1 लौटाएं। यदि ए <बी तो कोई समाधान नहीं होगा इसलिए 0 लौटाएं। यदि ए>बी तो परिणाम के रूप में (एबी) के भाजक की गणना करें।

उदाहरण के लिए

इनपुट

A=5, B=2

आउटपुट

Count of all possible values of X such that A % X = B are: 1

स्पष्टीकरण

5%3=2. So X is 3 here.

इनपुट

A=10, B=10

आउटपुट

Count of all possible values of X such that A % X = B are: −1

स्पष्टीकरण

Here A==B so there are infinite solutions so −1 is returned.

नीचे दिए गए कार्यक्रम में उपयोग किया गया दृष्टिकोण इस प्रकार है -

इस दृष्टिकोण में हम i=1 से i*i<=(A−B) के लिए लूप का उपयोग करके (A−B) के भाजक की गणना करेंगे। अगर कोई मैं पूरी तरह से विभाजित करता हूं (ए-बी) तो तदनुसार गिनती अपडेट करें।

  • इनपुट के रूप में पूर्णांक A और B लें।

  • यदि A

  • यदि A==B तो परिणाम के रूप में −1 प्रिंट करें।

  • ए>बी के लिए, फ़ंक्शन संभव_मान (इंट ए, इंट बी) ए और बी लेता है और एक्स के सभी संभावित मानों की गणना करता है जैसे कि ए% एक्स =बी।

  • प्रारंभिक गणना को 0 और X=A−B के रूप में लें।

  • X के भाजक की गणना के लिए i=1 से i*i<(A−B) तक लूप का उपयोग करके ट्रैवर्स करें।

  • अगर कोई मैं एक्स को पूरी तरह से विभाजित करता हूं तो temp=i, temp_2=B−1 लें और अगर i*i!=X तो temp_2 =X / i सेट करें।

  • अगर temp> B और temp_2>B तो इंक्रीमेंट काउंट।

  • लूप के अंत में परिणाम के रूप में वापसी की गणना करें।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
int possible_values(int A, int B){
   int count = 0;
   int X = A − B;
   for (int i = 1; i * i <= A − B; i++){
      if(X % i == 0){
         int temp = i;
         int temp_2 = B − 1;
         if(i * i != X){
            temp_2 = X / i;
         }
         if(temp > B){
            count++;
         }
         if(temp_2 > B){
            count++;
         }
      }
   }
   return count;
}
int main(){
   int A = 15, B = 5;
   if(A < B){
      cout<<"Count of all possible values of X such that A % X = B are: "<<0;
   }
   else if(A == B){
      cout<<"Count of all possible values of X such that A % X = B are: "<<−1;
   }
   else{
      cout<<"Count of all possible values of X such that A % X = B are: "<<possible_values(A, B);
   }
   return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -

Count of all possible values of X such that A % X = B are: 1

  1. x और y के सबसे छोटे मान इस प्रकार ज्ञात कीजिए कि C++ . में ax - by =0 हो

    मान लीजिए हमारे पास दो मान a और b हैं। हमें x और y को इस प्रकार ज्ञात करना है कि ax – by =0. तो यदि a =25 और b =35, तो x =7 और y =5। इसे हल करने के लिए, हमें a और b के एलसीएम की गणना करनी होगी। a और b का LCM सबसे छोटा मान होगा जो दोनों पक्षों को बराबर बना सकता है। LCM को इस सूत्र का उपयोग करके संख्

  1. न्यूनतम x ऐसे खोजें कि (x% k) * (x / k) ==n C++ . में

    दो धनात्मक पूर्णांक n और k दिए गए हैं, और हमें धनात्मक पूर्णांक x ज्ञात करना है, जैसे कि (x% k)*(x / k) n के समान हो। तो अगर n और k क्रमशः 4 और 6 हैं, तो आउटपुट 10 होगा। तो (10% 6) * (10 / 6) =4. जैसा कि हम जानते हैं कि x% k का मान रेंज [1 से k - 1] (0 शामिल नहीं है) में होगा। * के) / (एक्स% के) +

  1. एक सरणी में सभी जोड़े (ए, बी) खोजें जैसे कि सी ++ में% बी =के

    मान लीजिए कि हमारे पास एक सरणी ए है, उस सरणी से, हमें सभी जोड़े (ए, बी) प्राप्त करना है जैसे कि ए% बी =के। मान लीजिए कि सरणी A =[2, 3, 4, 5, 7] और k =3 है, तो जोड़े (7, 4), (3, 4), (3, 5), (3, 7) हैं। इसे हल करने के लिए, हम सूची को देखेंगे और जांचेंगे कि दी गई शर्त संतोषजनक है या नहीं। उदाहरण #inc