May 28, 2021 at 8:13am UTC
How do I make multiples of three or five to be printed?
------------------------------------------------------------------------------------------------------
int main()
{
int n;
int sum{ 0 };
cout << "Enter a number: " ;
cin >> n;
while ((sum < n) && ((sum % 3 == 0) || (sum % 5 == 0 )) ){
sum++;
cout << sum << "\n" ;
}
return 0;
}
------------------------------------------------------------------------------------------------------
This code only gives me "1" as the output, but I want all sum divisible by 3 or 5 to print.
e.g. 3, 5, 6, 9, 10, 12, 15 for n=17
Last edited on May 28, 2021 at 8:13am UTC
May 28, 2021 at 8:33am UTC
Close - but the condition for 3 or 5 needs to be within the while loop and not part of it. As it's part of it the loop terminates when the division test fails but you want the loop to continue until all the numbers in range have been tested:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
#include <iostream>
using namespace std;
int main()
{
int n {};
int sum {0};
cout << "Enter a number: " ;
cin >> n;
while (sum < n) {
if ((sum % 3 == 0) || (sum % 5 == 0))
cout << sum << ' ' ;
sum++;
}
return 0;
}
Note that the code can be simplified:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
#include <iostream>
using namespace std;
int main()
{
int n {};
cout << "Enter a number: " ;
cin >> n;
for (int sum {}; sum < n; ++sum)
if ((sum % 3 == 0) || (sum % 5 == 0))
cout << sum << ' ' ;
}
Last edited on May 28, 2021 at 8:34am UTC