मुझे पता है कि यूक्लिड का एल्गोरिथ्म सकारात्मक पूर्णांक की एक सूची का जीसीडी (महान आम भाजक) प्राप्त करने के लिए सबसे अच्छा एल्गोरिथ्म है। लेकिन व्यवहार में आप इस एल्गोरिथ्म को विभिन्न तरीकों से कोड कर सकते हैं। (मेरे मामले में, मैंने जावा का उपयोग करने का निर्णय लिया, लेकिन C / C ++ एक और विकल्प हो सकता है)।
मुझे अपने कार्यक्रम में सबसे कुशल कोड का उपयोग करने की आवश्यकता है।
पुनरावर्ती मोड में, आप लिख सकते हैं:
static long gcd (long a, long b){
a = Math.abs(a); b = Math.abs(b);
return (b==0) ? a : gcd(b, a%b);
}
और पुनरावृति मोड में, यह इस तरह दिखता है:
static long gcd (long a, long b) {
long r, i;
while(b!=0){
r = a % b;
a = b;
b = r;
}
return a;
}
जीसीडी के लिए बाइनरी एल्गोरिदम भी है, जिसे इस तरह से कोडित किया जा सकता है:
int gcd (int a, int b)
{
while(b) b ^= a ^= b ^= a %= b;
return a;
}