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!

Recommended Answers

All 2 Replies

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.

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.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.