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

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

Восстановить пароль Регистрация
 
Илюза19
0 / 0 / 0
Регистрация: 21.05.2013
Сообщений: 41
04.06.2013, 09:30     Получить в порядке возрастания N первых натуральных чисел, которые не делятся ни на какие простые числа, кроме 2, 3 и 5 #1
Дано натуральное число 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 минут
кто нибудь помогите пожалуйста срочно нужно(
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.06.2013, 09:30     Получить в порядке возрастания N первых натуральных чисел, которые не делятся ни на какие простые числа, кроме 2, 3 и 5
Посмотрите здесь:

C++ Дано натуральное число n. Получить в порядке возрастания n первых натуральных чисел, которые не делятся ни на какие простые числа, кроме 2, 3 и 5
дано натуральное число n. получить в порядке возрастания n первых натуральных чисел, которые не делятся ни на какие простые числа кроме 2, 3 и 5 C++
C++ Найдите сумму первых n натуральных чисел, которые являются степенью числа 3.
Дано натуральное n. Получить в порядке возрастания n первых натуральных чисел, которые не делятся ни на какие простые числа, кроме 2, 3 и 5 C++
C++ Дано натуральное число N. Найти сумму первых n натуральных чисел, которые не делятся ни на какие простые числа, кроме 2, 3 и 5
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ternsip
 Аватар для Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
04.06.2013, 12:24     Получить в порядке возрастания N первых натуральных чисел, которые не делятся ни на какие простые числа, кроме 2, 3 и 5 #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 => делится наше число на другое простое.
Илюза19
0 / 0 / 0
Регистрация: 21.05.2013
Сообщений: 41
04.06.2013, 14:45  [ТС]     Получить в порядке возрастания N первых натуральных чисел, которые не делятся ни на какие простые числа, кроме 2, 3 и 5 #3
Ternsip, ошибка здесь: scanf("%d", &n);
Ternsip
 Аватар для Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
04.06.2013, 15:06     Получить в порядке возрастания N первых натуральных чисел, которые не делятся ни на какие простые числа, кроме 2, 3 и 5 #4
Илюза19, детский сад. Напиши std::cin >> n; вместо scanf и вместо printf std::cout << i << " ";
Ну и раз такие проблемы возникают тогда не забудьте про _getch();
Илюза19
0 / 0 / 0
Регистрация: 21.05.2013
Сообщений: 41
04.06.2013, 15:15  [ТС]     Получить в порядке возрастания N первых натуральных чисел, которые не делятся ни на какие простые числа, кроме 2, 3 и 5 #5
Ternsip, там нужно вывести только те числа которые делятся на 2 3 5 а он все подряд выводит
Ternsip
 Аватар для Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
04.06.2013, 15:17     Получить в порядке возрастания N первых натуральных чисел, которые не делятся ни на какие простые числа, кроме 2, 3 и 5 #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
тут не все подряд
Илюза19
0 / 0 / 0
Регистрация: 21.05.2013
Сообщений: 41
04.06.2013, 15:21  [ТС]     Получить в порядке возрастания N первых натуральных чисел, которые не делятся ни на какие простые числа, кроме 2, 3 и 5 #7
Ternsip, напишите лучше код если вас это не затруднит я врод все правильно сдел но не компилир
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.06.2013, 15:23     Получить в порядке возрастания N первых натуральных чисел, которые не делятся ни на какие простые числа, кроме 2, 3 и 5
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Ternsip
 Аватар для Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
04.06.2013, 15:23     Получить в порядке возрастания N первых натуральных чисел, которые не делятся ни на какие простые числа, кроме 2, 3 и 5 #8
Илюза19, выше уже был приведён рабочий код, разработанный в среде Microsoft Visual studio 2012 c++. Не позорьтесь. Надеюсь, что вы хотя бы среду сами сможете настроить.
Yandex
Объявления
04.06.2013, 15:23     Получить в порядке возрастания N первых натуральных чисел, которые не делятся ни на какие простые числа, кроме 2, 3 и 5
Ответ Создать тему
Опции темы

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