Multiples of 3 and 5 without using % operator in C++

We can find the multiples using % operator without any hurdles. But, the problem states that we can't use % operator.
Here, we make use of the + operator. We can get the multiples by adding 3 or 5 to the previous multiple. Let's see an example.
Input
15
Output
1
2
3 - Multiple of 3
4
5 - Multiple of 5
6 - Multiple of 3
7
8
9 - Multiple 3
10 - Multiple of 5
11
12 - Multiple of 3
13
14
15 - Multiple of both 3 and 5
Initialise the number n.
Initialise the number n.
Initialise two number to keep track of next multiple of 3 and 5.
Initialise two number to keep track of next multiple of 3 and 5.
Initially those two numbers will be 3 and 5.
Write a loop that iterates from 1 to n. Both inclusive.Check whether the current number is multiple of 3 or not using the track variably.Similarly check for the multiple of 5.If they are multiple of 3 or 5, add respective number to them to get the next multiple.Print the corresponding text to the console.
Write a loop that iterates from 1 to n. Both inclusive.
Check whether the current number is multiple of 3 or not using the track variably.
Check whether the current number is multiple of 3 or not using the track variably.
Similarly check for the multiple of 5.
Similarly check for the multiple of 5.
If they are multiple of 3 or 5, add respective number to them to get the next multiple.
If they are multiple of 3 or 5, add respective number to them to get the next multiple.
Print the corresponding text to the console.
Print the corresponding text to the console.
Following is the implementation of the above algorithm in C++
#include <bits/stdc++.h>
using namespace std;
void findMultiplesOf3And5(int n) {
   int threeMultiple = 3;
   int fiveMultiple = 5;
   for (int i = 1; i <= n; i++) {
      bool _3 = false, _5 = false;
      if (i == threeMultiple) {
         threeMultiple += 3;
         _3 = true;
      }
      if (i == fiveMultiple) {
         fiveMultiple += 5;
         _5 = true;
      }
      if (_3 && _5) {
         cout << "Multiple of both 3 and 5" << endl;
      }else if (_3) {
         cout << "Multiple of 3" << endl;
      }else if (_5) {
         cout << "Multiple of 5" << endl;
      }else {
         cout << i << endl;
      }
   }
}
int main() {
   findMultiplesOf3And5(100);
   return 0;
}
If you run the above code, then you will get the following result.
1
2
Multiple of 3
4
Multiple of 5
Multiple of 3
7
8
Multiple of 3
Multiple of 5
11
Multiple of 3
13
14
Multiple of both 3 and 5
16
17
Multiple of 3
19
Multiple of 5
Multiple of 3
22
23
Multiple of 3
Multiple of 5
26
Multiple of 3
28
29
Multiple of both 3 and 5
31
32
Multiple of 3
34
Multiple of 5
Multiple of 3
37
38
Multiple of 3
Multiple of 5
41
Multiple of 3
43
44
Multiple of both 3 and 5
46
47
Multiple of 3
49
Multiple of 5
Multiple of 3
52
53
Multiple of 3
Multiple of 5
56
Multiple of 3
58
59
Multiple of both 3 and 5
61
62
Multiple of 3
64
Multiple of 5
Multiple of 3
67
68
Multiple of 3
Multiple of 5
71
Multiple of 3
73
74
Multiple of both 3 and 5
76
77
Multiple of 3
79
Multiple of 5
Multiple of 3
82
83
Multiple of 3
Multiple of 5
86
Multiple of 3
88
89
Multiple of both 3 and 5
91
92
Multiple of 3
94
Multiple of 5
Multiple of 3
97
98
Multiple of 3
Multiple of 5