﻿ C : Check if a non-ve is a multiple of 3 or 7, but not both

# C Exercises: Check whether a non-negative given number is a multiple of 3 or 7, but not both

## C-programming basic algorithm: Exercise-20 with Solution

Write a C program that checks if a given non-negative number is a multiple of 3 or 7, but not both.

C Code:

``````#include <stdio.h> // Include standard input/output library
#include <stdlib.h> // Include standard library for additional functions

// Function declaration for 'test' with an integer parameter 'n'
int test(int n);

int main(void){
// Print the result of calling 'test' with different integer values and format the output
printf("%d",test(3));
printf("\n%d",test(7));
printf("\n%d",test(21));
}

// Function definition for 'test'
int test(int n)
{
// Check if 'n' is divisible by 3 XOR divisible by 7
// XOR (^) returns true if either condition is met, but not both
if (n % 3 == 0 ^ n % 7 == 0) {
return 1; // If the XOR condition is true, return 1 (true)
} else {
return 0; // If the XOR condition is false, return 0 (false)
}
}
``````

Sample Output:

```1
1
0
```

Explanation:

```int test(int n) {
return n % 3 == 0 ^ n % 7 == 0;
}
```

The above function takes an integer n as input and returns 1 if n is divisible by 3 or 7 but not both, otherwise it returns 0. It uses the bitwise XOR operator (^) to determine if n is divisible by only one of 3 or 7, but not both.

Time complexity and space complexity:

The time complexity of the function is O(1) as it consists of a few simple operations that do not depend on the size of the input.

The space complexity of the function is O(1) as it uses a constant amount of space regardless of the size of the input.

Pictorial Presentation:

Flowchart:

C Programming Code Editor:

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.

﻿