# 3.5 Divisibility

## ৩.৫ বিভাজ্যতা (৬)

1. \[23] একটি **পূর্ণ সংখ্যা** জোড় না বিজোড় নির্ণয় কর।
   1. \[23.1] মডুলাস অপারেটর ব্যবহার করে
   2. \[23.2] বিটওয়াইজ অপারেটর ব্যবহার করে _(Similar)_
2. \[24] একটি **পূর্ণ সংখ্যা** ৩ দ্বারা বিভাজ্য কিনা নির্ণয় কর।
3. \[25] একটি **পূর্ণ সংখ্যা** ৩ দ্বারা বিভাজ্য হলে Fizz, ৫ দ্বারা বিভাজ্য হলে Buzz, ৩ ও ৫ উভয় দ্বারা বিভাজ্য হলে FizzBuzz প্রিন্ট কর।
4. \[26] একটি **ইংরেজী বর্ষ** অধিবর্ষ কিনা নির্ণয় কর।
5. \[27] একটি **ইংরেজী বর্ষ** শতবর্ষী অধিবর্ষ কিনা নির্ণয় কর।
6. \[28] একটি **পূর্ণ সংখ্যা** অন্য একটি **পূর্ণ সংখ্যা** দ্বারা নিঃশেষে বিভাজ্য কিনা নির্ণয় কর।

## সমাধান

### \[23] একটি **পূর্ণ সংখ্যা** জোড় না বিজোড় নির্ণয় কর। (মডুলাস অপারেটর ব্যবহার করে, বিটওয়াইজ অপারেটর ব্যবহার করে _(Similar))_

{% tabs %}
{% tab title="মডুলাস অপারেটর ব্যবহার করে" %}
{% code lineNumbers="true" %}
```c
#include<stdio.h>
int main(){
    int n;

    scanf("%d", &n);

    if(n% 2 == 0){
        printf("Even\n");
    }
    else{
        printf("Odd\n");
    }

    return 0;
}
```
{% endcode %}
{% endtab %}

{% tab title="বিটওয়াইজ অপারেটর ব্যবহার করে" %}
{% code lineNumbers="true" %}
```c
#include<stdio.h>
int main(){
    int n;

    scanf("%d", &n);

    if(n & 1){
        printf("Odd\n");
    }
    else{
        printf("Even\n");
    }

    return 0;
}
```
{% endcode %}
{% endtab %}
{% endtabs %}

| Sample Input | Sample Output |
| ------------ | ------------- |
| 4            | Even          |
| 7            | Odd           |
| 0            | Even          |

### \[24] একটি **পূর্ণ সংখ্যা** ৩ দ্বারা বিভাজ্য কিনা নির্ণয় কর।

{% code lineNumbers="true" %}
```c
#include<stdio.h>
int main(){
    int n;

    scanf("%d", &n);

    // Determine if the number is divisible by 3
    if(n % 3 == 0){
        // Print "Divisible by 3" if the number is divisible by 3
        printf("Divisible by 3\n");
    }
    else{
        // Print "Not divisible by 3" if the number is not divisible by 3
        printf("Not divisible by 3\n");
    }

    return 0;
}
```
{% endcode %}

| Sample Input | Sample Output      |
| ------------ | ------------------ |
| 9            | Divisible by 3     |
| 10           | Not divisible by 3 |
| 27           | Divisible by 3     |
| 14           | Not divisible by 3 |

### \[25] একটি **পূর্ণ সংখ্যা** ৩ দ্বারা বিভাজ্য হলে Fizz, ৫ দ্বারা বিভাজ্য হলে Buzz, ৩ ও ৫ উভয় দ্বারা বিভাজ্য হলে FizzBuzz প্রিন্ট কর।

{% tabs %}
{% tab title="Solution 1" %}
{% code lineNumbers="true" %}
```c
#include<stdio.h>
int main(){
    int n;

    scanf("%d", &n);

    // Determine if the number is divisible by 3, 5, or both
    if(n % 3 == 0 && n % 5 == 0){
        printf("FizzBuzz\n"); // Print "FizzBuzz" if divisible by both 3 and 5
    }
    else if (n % 3 == 0){
        printf("Fizz\n"); // Print "Fizz" if divisible by 3 only
    }
    else if (n % 5 == 0){
        printf("Buzz\n"); // Print "Buzz" if divisible by 5 only
    }

    return 0;
}
```
{% endcode %}
{% endtab %}

{% tab title="Solution 2" %}
{% code lineNumbers="true" %}
```c
#include<stdio.h>
int main(){
    int n;

    scanf("%d", &n);

    if(n % 3 == 0){
        printf("Fizz"); // Print "Fizz" if divisible by 3 only
    }
    if(n % 5 == 0){
        printf("Buzz"); // Print "Buzz" if divisible by 5 only
    }

    return 0;
}
```
{% endcode %}
{% endtab %}
{% endtabs %}

| Sample Input | Sample Output |
| ------------ | ------------- |
| 15           | FizzBuzz      |
| 9            | Fizz          |
| 10           | Buzz          |
| 7            | (no output)   |

### \[26] একটি **ইংরেজী বর্ষ** অধিবর্ষ কিনা নির্ণয় কর।

{% tabs %}
{% tab title="Solution 1" %}
{% code lineNumbers="true" %}
```c
#include<stdio.h>
int main(){
    int year;

    scanf("%d", &year);

    if(year % 400 == 0){
        // Print "Leap year" if divisible by 400
        printf("Leap year\n");
    }
    else if(year % 100 == 0){
        // Print "Not a leap year" if divisible by 100 but not by 400
        printf("Not a leap year\n");
    }
    else if(year % 4 == 0){
        // Print "Leap year" if divisible by 4 but not by 100
        printf("Leap year\n");
    }
    else{
        // Print "Not a leap year" if not divisible by 4
        printf("Not a leap year\n");
    }

    return 0;
}
```
{% endcode %}
{% endtab %}

{% tab title="Solution 2" %}
{% code lineNumbers="true" %}
```c
#include<stdio.h>
int main(){
    int year;

    scanf("%d", &year);

    if((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)){
        printf("Leap year\n");
    }
    else{
        printf("Not a leap year\n");
    }

    return 0;
}
```
{% endcode %}
{% endtab %}
{% endtabs %}

| Sample Input | Sample Output   |
| ------------ | --------------- |
| 2020         | Leap year       |
| 1900         | Not a leap year |
| 2000         | Leap year       |
| 2024         | Leap year       |
| 2023         | Not a leap year |

### \[27] একটি **ইংরেজী বর্ষ** শতবর্ষী অধিবর্ষ কিনা নির্ণয় কর।

{% code lineNumbers="true" %}
```c
#include<stdio.h>
int main(){
    int year;

    scanf("%d", &year);

    if (year % 400 == 0) {
        // Print "Century Leap year" if divisible by 400
        printf("Century Leap year\n");
    } else {
        // Print "Not a Century Leap Year" if not divisible by 400
        printf("Not a Century Leap Year\n");
    }

    return 0;
}
```
{% endcode %}

| Sample Input | Sample Output                   |
| ------------ | ------------------------------- |
| 1900         | 1900 is not a century leap year |
| 2000         | 2000 is a century leap year     |
| 2100         | 2100 is not a century leap year |
| 2200         | 2200 is not a century leap year |
| 2400         | 2400 is a century leap year     |
| 2500         | 2500 is not a century leap year |

### \[28] একটি **পূর্ণ সংখ্যা** অন্য একটি **পূর্ণ সংখ্যা** দ্বারা নিঃশেষে বিভাজ্য কিনা নির্ণয় কর।

{% code lineNumbers="true" %}
```c
#include<stdio.h>
int main(){
    int numerator, denominator;
    
    printf("Enter the numerator: ");
    scanf("%d", &numerator);

    printf("Enter the denominator: ");
    scanf("%d", &denominator)

    // Check if the denominator is zero to avoid division by zero
    if(denominator == 0){
        // Print an error message for division by zero
        printf("Denominator cannot be zero\n");
    }
    else if(numerator % denominator == 0){
        // Print if divisible
        printf("%d is exactly divisible by %d\n", numerator, denominator);
    }
    else{
        // Print if not divisible
        printf("%d is not exactly divisible by %d\n", numerator, denominator);
    }

    return 0;
}
```
{% endcode %}

| Sample Input | Sample Output                    |
| ------------ | -------------------------------- |
| 20 5         | 20 is exactly divisible by 5     |
| 10 3         | 10 is not exactly divisible by 3 |
| 25 0         | Denominator cannot be zero       |
| 45 9         | 45 is exactly divisible by 9     |
| 34 7         | 34 is not exactly divisible by 7 |
