VOOZH about

URL: https://www.geeksforgeeks.org/dsa/calculate-xor-1-n/

⇱ XOR of 1 to n Numbers - GeeksforGeeks


  • Courses
  • Tutorials
  • Interview Prep

XOR of 1 to n Numbers

Last Updated : 14 Sep, 2024

Given a number n, the task is to find the XOR from 1 to n. 
Examples :

Input : n = 6
Output : 7
// 1 ^ 2 ^ 3 ^ 4 ^ 5 ^ 6 = 7

Input : n = 7
Output : 0
// 1 ^ 2 ^ 3 ^ 4 ^ 5 ^ 6 ^ 7 = 0

Naive Approach - O(n) Time

1- Initialize the result as 0. 
1- Traverse all numbers from 1 to n. 
2- Do XOR of numbers one by one with results. 
3- At the end, return the result.


Output
0

Time Complexity: O(n)
Auxiliary Space: O(1)

Expected Approach - O(1) Time

1- Find the remainder of n by moduling it with 4. 
2- If rem = 0, then XOR will be same as n. 
3- If rem = 1, then XOR will be 1. 
4- If rem = 2, then XOR will be n+1. 
5- If rem = 3 ,then XOR will be 0.
How does this work?
When we do XOR of numbers, we get 0 as the XOR value just before a multiple of 4. This keeps repeating before every multiple of 4. 

Number Binary-Repr XOR-from-1-to-n

1 1 [0001]
2 10 [0011]
3 11 [0000] <----- We get a 0
4 100 [0100] <----- Equals to n
5 101 [0001]
6 110 [0111]
7 111 [0000] <----- We get 0
8 1000 [1000] <----- Equals to n
9 1001 [0001]
10 1010 [1011]
11 1011 [0000] <------ We get 0
12 1100 [1100] <------ Equals to n  


Output
1

Time Complexity: O(1)
Auxiliary Space: O(1)


Comment
Article Tags: