0

I'm having trouble solving this problem in C++:

2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any remainder.
What is the smallest positive number that is evenly divisible by all of the numbers from 1 to 20?

I have this code so far, but it keeps putting the answer as 1:

       #include <iostream>
       using namespace std;

       int main(long long x)
       {
            x=1;
            a:
            if (x%(20&&19&&18&&17&&16&&15&&14&&13&&12&&11&&10&&9&&8&&7&&6&&5&&4&&3&&2) == 0)
            {
            goto b;
            } else {
            x++;
            goto a;
            }
            b:
            cout << x;
       }

Please help!

3
Contributors
2
Replies
10
Views
4 Years
Discussion Span
Last Post by np complete
0

You are trying to be too clever with line #8. Also, DO NOT use "goto" statements - bad form! I'd give you a serious downgrade for that alone if I was teaching your class!

So, what I am trying to tell you, is to write your code in a logical manner that expresses the algorithm you need to reflect. Get it right first, and then worry about efficiency. It is a LOT easier to speed up a well-written bit of code, than to correct a bad, but fast bit of code.

0

What you need is LCM of the numbers. You can simply write the code for finding lcm of 2 numbers and use it recursively. Or you may use boost library.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.