Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 21.05.2013
Сообщений: 41
1

Получить в порядке возрастания N первых натуральных чисел, которые не делятся ни на какие простые числа, кроме 2, 3 и 5

04.06.2013, 09:30. Показов 2476. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дано натуральное число N. Получить в порядке возрастания N первых натуральных чисел, которые не делятся ни на какие простые числа, кроме 2, 3 и 5.



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
#include <iostream>
#include <conio.h>
#include <math.h>
 
using std::cout;
using std::endl;
using std::cin;
 
// функция, проверяющая, простое число или нет
int primeNumber(int number)
{
    for (int i = 2; i < number; i++)
    {
        if (number%i == 0)
            return 0;
        if ((i == number) || (i > sqrt((double)number)))
            return 1;
    }
    return 1;
}
 
int main()
{
    int n;
    cout << "Input n: ";
    cin >> n;
 
    // подсчитываем кол-во элементов для массива простых чисел, не включающего 2, 3 и 5
    int count = 0;
    for(int i = 2; i <= n; i++)
    {
        if ((primeNumber(i) == 1) && (i != 2) && (i != 3) && (i != 5))
            count++;
    }
 
    // выделяем для него память
    int *arr = new int[count];
 
    // заполняем его
    for(int i = 2, j = 0; i <= n; i++)
    {
        if (primeNumber(i) == 1)
        {
            if ((i != 2) && (i != 3) && (i != 5))
            {
                arr[j] = i;
                j++;
            }
        }
    }
 
    // получаем в порядке возрастания n первых натуральных чисел,
    // которые не делятся ни на какие простые числа, кроме 2, 3 и 5
    cout << "Result: " << endl;
    for(int i = 1; i < n; i++)
    {
        if ((i%2 == 0) || (i%3 == 0) || (i%5 == 0))
        {
            for(int j = 0; j < count; j++)
            {
                if (i%arr[j] != 0)
                {
                    cout << i << ' ';
                    break;
                }
            }
        }
    }
 
    delete [] arr;
    _getch();
    return 0;
}


там неправильно выводит число 21 не должно вывести помогите пожалуйста

Добавлено через 15 минут
кто нибудь помогите пожалуйста срочно нужно(
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.06.2013, 09:30
Ответы с готовыми решениями:

Дано натуральное n. Получить в порядке возрастания n первых натуральных чисел, которые не делятся ни на какие простые числа, кроме 2, 3 и 5
Дано натуральное n. Получить в порядке возрастания n первых натуральных чисел, которые не делятся...

Дано натуральное число n. Получить в порядке возрастания n первых натуральных чисел, которые не делятся ни на какие простые числа, кроме 2, 3 и 5
Дано натуральное число n. Получить в порядке возрастания n первых натуральных чисел, которые не...

дано натуральное число n. получить в порядке возрастания n первых натуральных чисел, которые не делятся ни на какие простые числа кроме 2, 3 и 5
#include&lt;iostream&gt; #include&lt;vector&gt; #include&lt;cstdlib&gt; using namespace std; int main() {int...

Получить N первых натуральных чисел, которые не делятся без остатка на простые числа (кроме 2, 3 и 5)
Дано натуральное число N. Получить в порядке возрастания N первых натуральных чисел, которые не...

7
670 / 198 / 29
Регистрация: 10.05.2012
Сообщений: 595
04.06.2013, 12:24 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
int main() {
    int n;
    scanf("%d", &n);
    for (int i = 1; n > 0; ++i) {
        int c = i;
        while (c > 6 && (c%2 == 0 || c%3 == 0 || c%5 == 0)) {
            if (c%2 == 0) c /= 2;
            if (c%3 == 0) c /= 3;
            if (c%5 == 0) c /= 5;
        }
        if (c < 7) {
            printf("%d ", i);
            --n;
        } 
    }
    return 0;
}
Добавлено через 11 минут
Илюза19, Доказательство : Любое число можно факторизовать простыми числами => если не удалось факторизовать число простыми 2, 3 и 5 => делится наше число на другое простое.
2
0 / 0 / 0
Регистрация: 21.05.2013
Сообщений: 41
04.06.2013, 14:45  [ТС] 3
Ternsip, ошибка здесь: scanf("%d", &n);
0
670 / 198 / 29
Регистрация: 10.05.2012
Сообщений: 595
04.06.2013, 15:06 4
Илюза19, детский сад. Напиши std::cin >> n; вместо scanf и вместо printf std::cout << i << " ";
Ну и раз такие проблемы возникают тогда не забудьте про _getch();
0
0 / 0 / 0
Регистрация: 21.05.2013
Сообщений: 41
04.06.2013, 15:15  [ТС] 5
Ternsip, там нужно вывести только те числа которые делятся на 2 3 5 а он все подряд выводит
0
670 / 198 / 29
Регистрация: 10.05.2012
Сообщений: 595
04.06.2013, 15:17 6
Илюза19, напишите какие числа не подходят. Я считаю всё верно.
у меня вот так выводит :
Кликните здесь для просмотра всего текста
1 2 3 4 5 6 8 9 10 12 15 16 18 20 24 25 27 30 32 36 40 45 48 50 54 60 64 72 75 80 81 90 96 100 108 120 125 128 135 144 150 160 162 180 192 200 216 225 240 243 250 256 270 288 300 320 324 360 375 384 400 405 432 450 480 486 500 512 540 576 600 625 640 648 675 720 729 750 768 800 810 864 900 960 972 1000 1024 1080 1125 1152 1200 1215 1250 1280 1296 1350 1440 1458 1500 1536
для первых 100
тут не все подряд
0
0 / 0 / 0
Регистрация: 21.05.2013
Сообщений: 41
04.06.2013, 15:21  [ТС] 7
Ternsip, напишите лучше код если вас это не затруднит я врод все правильно сдел но не компилир
0
670 / 198 / 29
Регистрация: 10.05.2012
Сообщений: 595
04.06.2013, 15:23 8
Илюза19, выше уже был приведён рабочий код, разработанный в среде Microsoft Visual studio 2012 c++. Не позорьтесь. Надеюсь, что вы хотя бы среду сами сможете настроить.
0
04.06.2013, 15:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.06.2013, 15:23
Помогаю со студенческими работами здесь

Дано натуральное число N. Найти сумму первых n натуральных чисел, которые не делятся ни на какие простые числа, кроме 2, 3 и 5
Дано натуральное число N. Найти сумму первых n натуральных чисел, которые не делятся ни на какие...

Дано натуральное число N. Получить в порядке возрастания N первых натуральных чисел
1. Дано натуральное число N. Получить в порядке возрастания N первых натуральных чисел, которые не...

Файл целых положительных чисел. Сначала располагаются числа, которые делятся на 3 в порядке возрастания, потом
Файл целых положительных чисел. Сначала располагаются числа, которые делятся на 3 в порядке...

Найти сумму первых n натуральных чисел которые делятся на 3 и на 5
Найти сумму первых n натуральных чисел которые делятся на 3 и на 5 Определить сумму элементов...


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

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