Helter Skelter
64 / 64 / 19
Регистрация: 19.09.2012
Сообщений: 133
1

Перевести код с паскаля на C++

02.11.2013, 23:11. Показов 1258. Ответов 1

По заданному натуральному числу N необходимо вычислить количество натуральных чисел, которые являются делителями N! (факториала числа N).

Например, при N=4, N!=4·3·2·1=24. Это число имеет такие делители: 1, 2, 3, 4, 6, 8, 12, 24. Таким образом искомое количество равняется 8.

Pascal
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
var 
    a: array [1..45] of integer; 
    i, j, m, p, n: integer; 
    r: longint; 
begin 
    readln(n); 
    for i := 1 to n do a[ i ] := i; 
    r := 1; 
    for i := 1 to n do begin 
        m := 0; 
        for j := i to n do 
            if a[j] <> 1 then begin 
                m := a[j]; 
                break; 
            end; 
        p := 0; 
        if m > 0 then 
            for j := i to n do 
                while a[j] mod m = 0 do begin 
                    inc(p); 
                    a[j] := a[j] div m; 
                end; 
            if p > 0 then r := r * (p + 1) else break; 
    end; 
    writeln(r); 
end.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.11.2013, 23:11
Ответы с готовыми решениями:

Перевести код из Паскаля в Си++
Переведите пожалуйста из Паскаля в Си++, кому не сложно.

Перевести код с Паскаля на С++
Program proga; uses crt; Type gostinica= record FIO:string; nomer:integer; cena:integer;...

Перевести код с Паскаля на С++
Фирме принадлежат два магазина. Известна стоимость товаров, проданных в каждом магазине за каждый...

перевести код из паскаля на с++
var i, a, n, s: int64; j, t:longint; procedure out; begin writeln (s); halt; end; ...

1
4 / 4 / 6
Регистрация: 30.11.2012
Сообщений: 41
03.11.2013, 00:39 2
Лучший ответ Сообщение было отмечено hofmn как решение

Решение

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
#include <iostream>
 
using namespace std;
 
int main() {
    int *a;
    int p, n, m;
    long int r = 1;
 
    cin >> n;
    a = new int[n];
    for(int i = 0; i < n; i++) {
        a[i] = i;
    }
 
    for(int i = 0; i < n; i++) {
        m=0;
        for(int j = i; j < n; j++) {
            if(a[j] != 1) {
                m = a[j];
                break;
            }
        }
        p = 0;
        if(m > 0) {
            for(int j = i; j < n; j++) {
                while(a[j]%m==0) {
                    p++;
                    a[j] = a[j]/m;
                }
                if (p > 0) {
                    r *= (p+1);
                } else {
                    break;
                }
            }
 
        }
    }
    cout << r;
}
вроде работает все
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.11.2013, 00:39
Помогаю со студенческими работами здесь

Перевести код с Паскаля на C++
begin var число := ReadInteger('Введите трехзначное натуральное число:'); var (сотни,...

Перевести код из Паскаля в С++
Помогите, пожалуйста перевести в с++ uses crt; const nmax=20; var a:array of integer; ...

Перевести код с Паскаля на Си++
Добрый всем день! Будьте добры, перепишете пожалуйста данную программу из паскаля на си++. Буду...

Перевести код паскаля в с++
Нужно перевести данный код паскаля в с++. Задание: Найти в строке все заданные последовательности...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru