Форум » Обработка целых чисел » Ошибка в решении задачи 4749 » Ответить

Ошибка в решении задачи 4749

Поляков: minikaev_lenar пишет[quote]Сегодня решали Ваши задачи, и в задаче 4749 пятый ответ у нас не совпадает. Не могли бы Вы нам помочь разобраться.  2569999 467999 2444457 4457789 4446677 — вместо этого мы получили это 333479 для числа 10005817 [pre2] #include <iostream> using namespace std; int del(int n){ int s = 0, k = 0, d = 2, d1; while (d*d <= n and k < 3 ){ if (n % d == 0) { d1 = d; if (d*d == n and k == 1) { s += n / s; k++; } k++; s+=n/d;} d++; } if (k == 2) s += d1; if (k == 3) return s; else return 0; } bool v (int n){ if (n == 0) return false; int k = 0; int a = n % 10; n /= 10; while (n != 0){ int b = n % 10; if (b > a) return false; a = b; n /= 10; } return true; } int main() { int k = 0; int n = 10000000; while (k < 5){ int sn = del(n); if (v(sn)) {k++; cout << sn << endl;} n++; } } [/pre2][/quote]Вы неправильно обрабатываете число 10005003.

Ответов - 0



полная версия страницы