Given a positive integer n and k. Find maximum xor of 1 to n using at most k numbers. Xor sum of 1 to n is defined as 1 ^ 2 ^ 3 ^ … ^ n.
Examples : 
Input : n = 4, k = 3 Output : 7 Explanation Maximum possible xor sum is 1 ^ 2 ^ 4 = 7. Input : n = 11, k = 1 Output : 11 Explanation Maximum Possible xor sum is 11.
If we have k = 1 then the maximum possible xor sum is ‘n’ itself. Now for k > 1, we can always have a number with its all bits set till the most significant set bit in ‘n’.
C++
| // CPP program to find max xor sum// of 1 to n using atmost k numbers#include <bits/stdc++.h>usingnamespacestd;typedeflonglongintll;// To return max xor sum of 1 to n// using at most k numbersll maxXorSum(ll n, ll k){    // If k is 1 then maximum    // possible sum is n    if(k == 1)        returnn;    // Finding number greater than    // or equal to n with most significant     // bit same as n. For example, if n is    // 4, result is 7. If n is 5 or 6, result     // is 7    ll res = 1;    while(res <= n)        res <<= 1;    // Return res - 1 which denotes    // a number with all bits set to 1    returnres - 1;}// Driver program intmain(){    ll n = 4, k = 3;    cout << maxXorSum(n, k);    return0;} | 
Java
| // Java program to find max xor sum// of 1 to n using atmost k numberspublicclassMain {    // To return max xor sum of 1 to n    // using at most k numbers    staticintmaxXorSum(intn, intk)    {        // If k is 1 then maximum        // possible sum is n        if(k == 1)            returnn;        // Finding number greater than        // or equal to n with most significant         // bit same as n. For example, if n is        // 4, result is 7. If n is 5 or 6, result         // is 7        intres = 1;        while(res <= n)            res <<= 1;        // Return res - 1 which denotes        // a number with all bits set to 1        returnres - 1;    }    // Driver program to test maxXorSum()    publicstaticvoidmain(String[] args)    {        intn = 4, k = 3;        System.out.print(maxXorSum(n, k));    }} | 
Python
| # Python3 code to find max xor sum# of 1 to n using atmost k numbers# To return max xor sum of 1 to n# using at most k numbersdefmaxXorSum( n , k ):    # If k is 1 then maximum    # possible sum is n    ifk ==1:        returnn        # Finding number greater than    # or equal to n with most significant    # bit same as n. For example, if n is    # 4, result is 7. If n is 5 or 6, result    # is 7    res =1    whileres <=n:        res <<=1        # Return res - 1 which denotes    # a number with all bits set to 1    returnres -1# Driver coden =4k =3print( maxXorSum(n, k) )# This code is contributed by Abhishek Sharma44. | 
C#
| // C# program to find max xor sum// of 1 to n using atmost k numbersusingSystem;publicclassmain {    // To return max xor sum of 1 to n    // using at most k numbers    staticintmaxXorSum(intn, intk)    {        // If k is 1 then maximum        // possible sum is n        if(k == 1)            returnn;        // Finding number greater than        // or equal to n with most significant         // bit same as n. For example, if n is        // 4, result is 7. If n is 5 or 6, result         // is 7        intres = 1;        while(res <= n)            res <<= 1;        // Return res - 1 which denotes        // a number with all bits set to 1        returnres - 1;    }    // Driver program    publicstaticvoidMain()    {        intn = 4, k = 3;        Console.WriteLine(maxXorSum(n, k));    }}// This code is contributed by vt_m. | 
PHP
| <?php// PHP program to find max xor sum// of 1 to n using atmost k numbers// To return max xor sum of 1 to n// using at most k numbersfunctionmaxXorSum($n, $k){    // If k is 1 then maximum    // possible sum is n    if($k== 1)        return$n;    // Finding number greater than    // or equal to n with most     // significant bit same as n.     // For example, if n is 4, result     // is 7. If n is 5 or 6, result is 7    $res= 1;    while($res<= $n)        $res<<= 1;    // Return res - 1 which denotes    // a number with all bits set to 1    return$res- 1;}// Driver code $n= 4;$k= 3;echomaxXorSum($n, $k);// This code is contributed by Mithun Kumar?> | 
Javascript
| <script>// JavaScript program to find max xor sum// of 1 to n using atmost k numbers    // To return max xor sum of 1 to n    // using at most k numbers    functionmaxXorSum(n, k)    {        // If k is 1 then maximum        // possible sum is n        if(k == 1)            returnn;          // Finding number greater than        // or equal to n with most significant         // bit same as n. For example, if n is        // 4, result is 7. If n is 5 or 6, result         // is 7        let res = 1;        while(res <= n)            res <<= 1;          // Return res - 1 which denotes        // a number with all bits set to 1        returnres - 1;    }      // Driver code                let n = 4, k = 3;        document.write(maxXorSum(n, k));</script> | 
7
Time Complexity : O(logn)
Auxiliary Space : O(1)
 
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!


 
                                    







