57 / 33 / 30
Регистрация: 15.04.2017
Сообщений: 141
1

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

19.04.2018, 13:37. Показов 1377. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Может кому пригодится. Реализация на Си
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
#include<stdio.h>
#include<stdlib.h>
bool isSimple(int a);
const int N = 200;
int cmpfct(const void* a, const void* b);
int main(void){
    int A[N];
    int input;
    int tempI;
    int cursor = 0;
    int sum = 0;
    int prev;
    int res = 1;
    int n = 1;
    scanf("%d", &input);
    for (int i = 0; i < N; i++){
        A[i] = 0;
    }
    for (int i = 2; i <= input; i++){                   // По всем множителям (факториал)
        tempI = i;
        for (int j = 2; tempI != 1 && j <= i; j++){         // Раскладываем i на простые множители
 
            if (tempI%j == 0 && isSimple(j)){           // Если делится на простое число
                A[cursor] = j;
                tempI /= j;
                j = 1;
                for (int i = 0; i < N && A[i] != 0; i++){
                }
                cursor++;
            }
        }
    }
    qsort(A, N, sizeof(int), cmpfct);                   // Сортировка (по убыванию из-за нулей в массиве)
 
    for (int i = 0; A[i] != 0; i++)
        n++;
    prev = A[0];
    tempI = 0;
    for (int i = 0; i < n; i++){
        if (A[i] == prev){
            tempI++;
        }
        else{
            res = res*(tempI + 1);
            prev = A[i];
            tempI = 1;
        }
    }
    printf("%d", res);
    return 0;
}
bool isSimple(int a){
    for (int i = 2; i*i <= a; i++){
        if (a%i == 0) return false;
    }
    return true;
}
int cmpfct(const void* a, const void* b){
    return (*(int*)b - *(int*)a);
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.04.2018, 13:37
Ответы с готовыми решениями:

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

Построить по заданному натуральному числу N список, состоящий из натуральных чисел от N до 1
Создайте предикат, порождающий по заданному натуральному числу N список, состоящий из натуральных...

По натуральному числу подсчитать количество натуральных чисел среди заданных
Напишите программу, которая по натуральному числу a, не превосходящему 30000, подсчитывает...

Необходимо найти длины сторон всех прямоугольников, площадь которых равна заданному натуральному числу S
Необходимо найти длины сторон всех прямоугольников, площадь которых равна заданному натуральному...

1
594 / 286 / 178
Регистрация: 06.06.2016
Сообщений: 547
21.04.2018, 21:47 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
 
 #include <stdio.h>
 
 int is_prime( int a )
 {
       for ( int i = 2; i*i <= a; i++ )
       {
           if ( !(a % i) ) 
              return 0;
       }
   return 1;
 }
 /* Количество делителей N! */
 int number_of_divisors( int N )
 {
   int tau_N = 1;
       for ( int d = 2; d <= N; ++d )
       {
            if ( is_prime( d ) )
            {
              int alpha = 0;
                  for ( int dd = d; N / dd; dd *= d )
                     alpha += N / dd;
              tau_N *= ( 1 + alpha );
            }   
       }
   return tau_N;
 }  
 int main( void )
 {
   const int N = 8; 
   printf( "The number of divisors %d! = %d \n", N, number_of_divisors( N ) );  
   return 0;
 }
0
21.04.2018, 21:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.04.2018, 21:47
Помогаю со студенческими работами здесь

Найти количество натуральных трехзначных чисел, сумма которых равна заданному числу N
Составить программу, определяющую количество натуральных трехзначных чисел , сумма которых равна...

Определить количество натуральных чисел, сумма цифр которых равна заданному числу N
Определить количество натуральных чисел, сумма цифр которых равна заданному числу N. ВСЕ...

Построить первые N натуральных чисел, делителями которых являются числа 2, 3 и 5
Народ пожалуйста помогите не могу написать программу в Delphi для задачи: Построить первые N...

По заданному натуральному числу определить количество цифр в нём и их сумму
ПЛЗ,помогите:help: Написать и протестировать функцию, которая по заданному натуральному числу...

По заданному натуральному числу определить количество цифр в числе и их сумму
Написать и протестировать функцию которая по заданному натуральному числу определяет количество...

По заданному натуральному числу определить количество цифр в нем и их сумму
1)Написать программу, которая по заданному натуральному числу определяет количество цифр в нем и их...


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

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

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