Форум программистов, компьютерный форум CyberForum.ru

По количеству делителей числа определить само число - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ как в с++ создается типизированный файл? и как вообще понять типизированный? http://www.cyberforum.ru/cpp-beginners/thread376677.html
вопрос в теме
C++ дана целочисленная прямо угольная матрица 1) задача Дана цедочисленная прямоугольная матрица определить: найти номер первой из строк, содержащих хотябы один положительный элемент размер массива 5х5 замолнить случайными числами. 2) задача В одномерном массиве, состоящем из 10 целых элементов вычислить 1) номер максимального по модулю элемента 2)Сумму элементов массива, расположенных после первого положительного элемента ... http://www.cyberforum.ru/cpp-beginners/thread376658.html
В чем разница между простым линейным списком, и динамическим линейным списком? C++
вопрос в теме
C++ Двоеточие в конструкторе, что это?
Пример - конкретно из книги дейтела, вопрос вызывает двоеточие после конструктора, если оно позвляет производить инициализацию - то почему не делать бы этого в теле. Было бы очень хорошо если бы кто-нибудь ткнул носом в мануал по возможным вариантам использования этой вундервафли. String::String( const char *s):length( ( s != 0) ? strlen(2) : 0){/*...*/} Поиском по форуму не нашел, если было...
C++ проверьте правильность программ http://www.cyberforum.ru/cpp-beginners/thread376630.html
Нужно составить программу который подсчитывает площадь прямоугольного треугольника когда известна длина и высота: { Float a, h, s; Printf (“vvedite dlinu I visotu: ”); Scanf (“%f %f”, &a, &h); S=(1.0/2.0)*a*h Printf (“ploshad= %f”, s); Return 0; }
C++ Определить количество нечетных членов последовательности, имеющих четные номера Даны натуральные числа n, а1,......,аn. Определить количество членов ак последовательности а1,......,аn : имеющих четные порядковые номера и являющихся нечетными числами. подробнее

Показать сообщение отдельно
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
03.11.2011, 06:00     По количеству делителей числа определить само число
Цитата Сообщение от Dani Посмотреть сообщение
спасибо, а можете еще идую в кратце?
смогу, но только завтра... сейчас начинается банкет...

Добавлено через 12 часов 13 минут
Цитата Сообщение от Dani Посмотреть сообщение
спасибо, а можете еще идею описать в кратце?
Идея (то же самое, только раздельно и про себя хочу спросить сейчас, ):
Любое число (кроме 1) можно разложить на простые числа, например:
число 8
2 3 5 7 <- простые числа
3 0 0 0 <- количество простых чисел в разложении

число 6
2 3 5 7 <- простые числа
1 1 0 0 <- количество простых чисел в разложении

число 12
2 3 5 7 <- простые числа
2 1 0 0 <- количество простых чисел в разложении

Зная количество простых чисел в разложении, можно запросто узнать общее количество делителей числа:
изначально берем res=1 (любое число делится на 1), затем идем по нижней строке разложенного на множители числа в примерах сверху (количество простых чисел в разложении) и если значение не равно 0, то делаем так: res=res*mas[i] + mas[i];

Теперь еще такой факт:
К примеру количество делителей числа будет одинаково для таких чисел:
число 60
2 3 5 7 <- простые числа
2 1 1 0 <- количество простых чисел в разложении

число 150
2 3 5 7 <- простые числа
1 1 2 0 <- количество простых чисел в разложении
потому что сами наборы количества простых чисел в разложении у них "одинаковы"
но число 150 больше числа 60 . Т.е. если лексикографический порядок указанного набора больше, то и само число больше.

Теперь нам осталось узнать необходимый набор количества простых чисел в разложении, который обеспечивает нужное количество делителей числа. После этого, можно составить само число - делителю 2 самое большое значение, делителю 3, следующее, и т.д.

В моем коде используется рек функция, которая заполняет нижнюю строку разложенного на множители числа как в задаче "лесенки" с того же ******** - предыдущее значение mas[i-1] должно быть большим или равным mas[i], кроме того проверяется что найденное число меньше или равно 10^15+1 .
Что непонятно, спрашивайте.

Добавлено через 12 секунд
Цитата Сообщение от Dani Посмотреть сообщение
спасибо, а можете еще идею описать в кратце?
Идея (то же самое, только раздельно и про себя хочу спросить сейчас, ):
Любое число (кроме 1) можно разложить на простые числа, например:
число 8
2 3 5 7 <- простые числа
3 0 0 0 <- количество простых чисел в разложении

число 6
2 3 5 7 <- простые числа
1 1 0 0 <- количество простых чисел в разложении

число 12
2 3 5 7 <- простые числа
2 1 0 0 <- количество простых чисел в разложении

Зная количество простых чисел в разложении, можно запросто узнать общее количество делителей числа:
изначально берем res=1 (любое число делится на 1), затем идем по нижней строке разложенного на множители числа в примерах сверху (количество простых чисел в разложении) и если значение не равно 0, то делаем так: res=res*mas[i] + mas[i];

Теперь еще такой факт:
К примеру количество делителей числа будет одинаково для таких чисел:
число 60
2 3 5 7 <- простые числа
2 1 1 0 <- количество простых чисел в разложении

число 150
2 3 5 7 <- простые числа
1 1 2 0 <- количество простых чисел в разложении
потому что сами наборы количества простых чисел в разложении у них "одинаковы"
но число 150 больше числа 60 . Т.е. если лексикографический порядок указанного набора больше, то и само число больше.

Теперь нам осталось узнать необходимый набор количества простых чисел в разложении, который обеспечивает нужное количество делителей числа. После этого, можно составить само число - делителю 2 самое большое значение, делителю 3, следующее, и т.д.

В моем коде используется рек функция, которая заполняет нижнюю строку разложенного на множители числа как в задаче "лесенки" с того же ******** - предыдущее значение mas[i-1] должно быть большим или равным mas[i], кроме того проверяется что найденное число меньше или равно 10^15+1 .
Что непонятно, спрашивайте.
 
Текущее время: 19:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru