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

На входе программе даются два числа N и P - C++

Восстановить пароль Регистрация
 
ДЖАБРАИЛ.
1 / 2 / 0
Регистрация: 03.05.2011
Сообщений: 30
28.06.2011, 21:07     На входе программе даются два числа N и P #1
решите если можете пожалуйста.

На входе программе даются два числа N и P. Программа на выходе должна дать такое максимальное
число М. что N! делиться на P в степени М, но не делиться на P с в степени М+1.
Примечание.
1. Числа N и P так велики , что нет смысла считать значение N!.
2. Числа N и P является натуральными.

Добавлено через 54 секунды
если можете с комментарием
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.06.2011, 21:07     На входе программе даются два числа N и P
Посмотрите здесь:

Даны два целых числа M но N. Вывести все целые числа из промежутка [M,n] C++
Даны два целых числа A и B (A < B). Вывести в порядке убывания все це-лые числа, расположенные между A и B (не включая числа A и B), а также количеств C++
C++ Два потока в одной программе
Два вопроса по простой программе C++
C++ Как написать функцию, которая бы получала на входе целочисленное число, а возвращала бы значение суммы цифр куба этого числа?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
insolent
 Аватар для insolent
826 / 347 / 15
Регистрация: 30.01.2009
Сообщений: 1,204
28.06.2011, 21:33     На входе программе даются два числа N и P #2
ДЖАБРАИЛ., Задача 22. Нужно только из Паскаля в С перевести.
ДЖАБРАИЛ.
1 / 2 / 0
Регистрация: 03.05.2011
Сообщений: 30
28.06.2011, 22:25  [ТС]     На входе программе даются два числа N и P #3
А вы можете его с Паскаля в С перевести
insolent
 Аватар для insolent
826 / 347 / 15
Регистрация: 30.01.2009
Сообщений: 1,204
28.06.2011, 22:30     На входе программе даются два числа N и P #4
ДЖАБРАИЛ., Есь какие-то проверочные данные?
ДЖАБРАИЛ.
1 / 2 / 0
Регистрация: 03.05.2011
Сообщений: 30
28.06.2011, 22:51  [ТС]     На входе программе даются два числа N и P #5
я его не смог перевести
insolent
 Аватар для insolent
826 / 347 / 15
Регистрация: 30.01.2009
Сообщений: 1,204
28.06.2011, 23:06     На входе программе даются два числа N и P #6
ДЖАБРАИЛ., я имел ввиду значения n и p, и макс. степень m.
ДЖАБРАИЛ.
1 / 2 / 0
Регистрация: 03.05.2011
Сообщений: 30
28.06.2011, 23:21  [ТС]     На входе программе даются два числа N и P #7
я не понял твой вопрос

Добавлено через 3 минуты
проста эту задачу не возможно перевести или есть какие то не понятии
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.06.2011, 00:51     На входе программе даются два числа N и P
Еще ссылки по теме:

C++ Дано два числа А и В (А<В). Вывести в порядке увеличения все целые числа
Даны два числа. Если квадратный корень из второго числа меньше первого числа, то увличить второе число в пять раз с++ C++
C++ Сравните два числа A и B. Задан два целых неотрицательных числа A и B

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
insolent
 Аватар для insolent
826 / 347 / 15
Регистрация: 30.01.2009
Сообщений: 1,204
29.06.2011, 00:51     На входе программе даются два числа N и P #8
Взял тестовый вариант с algolist.manual.ru
N=15, P=135.
P=3*3*3*5, p1=3, s1=3, m1=15 div 3 + 15 div (3*3)=6
P2=5, s2=1, m2=3.

Получаем, что M=min{6 div 3, 3 div 1}=2.
Решение перевол на С++
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include <iostream>
#include <climits>
#include <process.h>
 
using namespace std;
 
// Функция howmany считает, сколько раз в разложении числа n!
// присутствует множитель mn.
long howmany ( long mn, long n );
// Функция st находит степень множителя mn в разложении 
// числа p на простые множители
long st ( long mn, long &n );
 
int main(int argc, char* argv[])
{
    setlocale(LC_ALL, ".1251");
 
    long n,p,i,stp,m,km;
    bool flag;
    char ch;
 
    while ( true )
    {
        cout << "Введите число N и P => ";
        cin >> n >> p;
        if ( p != 1 )
        { 
            m = LONG_MAX;
            i = 2;
            flag = true;
            do
            {
                stp = st( i, p );
                if ( stp != 0 )
                {
                    km = howmany( i, n );
 
                    if ( km/stp < m)
                    {
                        m = km/stp;
                        if ( !m ) flag = false;
                    }
                }
 
                ( i == 2 ) ? i = 3 : i += 2;
            } while ( !(i>p || !flag) );
 
            cout << "Число M равно " << m << endl;
        } 
        else
        {
            cout << "Число M не существует." << endl;
        }
 
        cout << "Продолжить ? (y/n)";
        cin >> ch;
        if ( ch == 'N' || ch == 'n') exit(1);
    }
 
    system("PAUSE");
    return 0;
}
 
long howmany( long mn, long n )
{
    long pr1 = mn, pr2 = 0, pr3 = 1;
 
    while ( pr3 != 0 )
    {
        pr3 = n / pr1;
        pr1 *= mn;
        pr2 += pr3;
    }
 
    return pr2;
}
 
long st( long mn, long &n )
{
    long prom = 0;
 
    while ( n%mn == 0 )
    {
        prom++;
        n /= mn;
    }
 
    return prom;
}
Yandex
Объявления
29.06.2011, 00:51     На входе программе даются два числа N и P
Ответ Создать тему
Опции темы

Текущее время: 08:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru