Не могу решить задачу на C++. Постоянно выводится ответ 10000, т.е не присваивается значение
#include <iostream>
using namespace std;
int main ()
{
int min =100000;
for (int i = 10000; i > 0; i--)
{
for( int n=1; n<20; n++)
{
if (i%n==0)
{
continue;
}
else
{
break;
}
min==i;
}
cout<<min;
}
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
А вы оптимист - искать это число до 100000...
Вообще эта задача решается не так - вам нужно наименьшее общее кратное чисел от 1 до 20. К счастью, int хватает...
#include <iostream>
using namespace std;
// На тот случай, если в вашем компиляторе нет
// стандартных функций gcd и lcm...
int gcd(int m, int n)
{
while(m && n) if (m < n) n %= m; else m %= n;
return m + n;
}
int lcm(int m, int n)
{
return m/gcd(m,n)*n;
}
int main()
{
int N = 1;
for(int i = 2; i <= 20; ++i)
N = lcm(N,i);
cout << N << endl;
}