w3resource

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:

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

Flowchart:

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

C Programming Code Editor:

Previous: Write a C program to test whether a given non-negative number is a multiple of 13 or it is one more than a multiple of 13.
Next: Write a C program to check whether a given number is within 2 of a multiple of 10.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.