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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ДЖАБРАИЛ.
1 / 2 / 0
Регистрация: 03.05.2011
Сообщений: 30
#1

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

28.06.2011, 21:07. Просмотров 359. Ответов 7
Метки нет (Все метки)

решите если можете пожалуйста.

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

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

Сравните два числа A и B. Задан два целых неотрицательных числа A и B - C++
Сравните два числа A и B. Задан два целых неотрицательных числа A и B (A, B <= 1010000) каждое в своей строке. Найти разность двух...

На входе должно быть число n, а на выходе все натуральные числа p < n - C++
На входе должно быть число n, а на выходе все натуральные числа p &lt; n.Помогите пожалуйста!

Даны два числа. Если квадратный корень из второго числа меньше первого числа, то увличить второе число в пять раз с++ - C++
Даны два числа. Если квадратный корень из второго числа меньше первого числа, то увличить второе число в пять раз с++ Добавлено через...

Задать два числа как два массива и потом выполнить сложение, умножение и деление - C++
Здравствуйте! Суть задачи в следующем: Нужно задать два числа как два массива и потом выполнить сложение, умножение и деление с помощью...

Два потока в одной программе - C++
Две фунцкии одной программы оформить как две функции потока. После ввода значений запускаются два требуемых потока, а потом на экран...

Два вопроса по простой программе - C++
Вообщем начал изучать С++ (и из этого следует что я ничего не понимаю в программировании) В интернете скачал учебник &quot;С++ для чайников&quot; ...

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

Добавлено через 3 минуты
проста эту задачу не возможно перевести или есть какие то не понятии
0
insolent
826 / 347 / 15
Регистрация: 30.01.2009
Сообщений: 1,204
29.06.2011, 00:51 #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;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.06.2011, 00:51
Привет! Вот еще темы с ответами:

Как написать функцию, которая бы получала на входе целочисленное число, а возвращала бы значение суммы цифр куба этого числа? - C++
Сабж.

Нужно ввести два числа, а вывести ряд от первого числа до второго - C++
Например, ввели 2 и 5, а вывели : 2345

Даны два целых числа M но N. Вывести все целые числа из промежутка [M,n] - C++
Даны два целых числа M но N. Вывести все целые числа из промежутка , которые делящиеся 2, но не делящиеся на 4, а также количество K этих...

Дано два числа А и В (А<В). Вывести в порядке увеличения все целые числа - C++
Дано два числа А и В (А&lt;В). Вывести в порядке увеличения все целые числа, расположеные между А и В(не включая чисед А и В), а также...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
29.06.2011, 00:51
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru