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

C++ Упорядочить все сверхпростые числа по возростанию.Найти к-ое сверхпростое в етом порядке. - C++

Восстановить пароль Регистрация
 
greategi
0 / 0 / 0
Регистрация: 13.02.2012
Сообщений: 20
13.02.2012, 01:40     C++ Упорядочить все сверхпростые числа по возростанию.Найти к-ое сверхпростое в етом порядке. #1
C++ Упорядочить все сверхпростые числа по возростанию.Найти к-ое сверхпростое в етом порядке.
Сверхпростое число - простое число номер которого в списке простых чисел упорядоченым по возростанию являетса простым! например 1 сверхпростое чсило будет 2 второе 3 третее 5 четвертое 11!

В чем ошибка подскажите пожалуста! При вводе любого числа выдает 0!
Зарание спасибо.

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
typedef list<int> primes_list;
typedef primes_list::iterator primes_iterator;
    //функция нахождения простого
    bool IsPrime(int n, primes_list primes)
        {
        if (n < 2)
        return false;
 
    bool rezyl = true;
        for (primes_iterator i = primes.begin(); i != primes.end(); i++)
        {
        int prime = *i;
            if (n / prime < prime)
            break;
                if (n % prime == 0)
                {
                rezyl = false;
                break;
                }
        }
 
        return rezyl;
        }
// Теперь сам алгоритм нахождения k-го сверхпростого числа:
 
int GetSuperPrime(int k)
{
    if (k < 1)
    return 0;
 
int primes_count = 0;
int superprimes_count = 0;
 
    primes_list primes;
 
        for (int i = 2; ; i++)
        {
        if (IsPrime(i, primes))
            {
            primes.push_back(i);
            primes_count++;
 
                if (IsPrime(primes_count, primes))
                    {
                    superprimes_count++;
 
                        if (superprimes_count == k)
                        {
                        return i;
                        }
                    }
            }
        }
}
 
void main()
{
 int k=0;
cin >> k;
GetSuperPrime(k);//удобней функцию использовать отдельно, чтоб в случае ошибки, остледить где ошибка
cout << i << endl;//в функции гетсуперпрайм у тебя return i; значит именно i надо выводить на екран
system("pause");
}
 Комментарий модератора 
Используйте теги форматирования кода!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.02.2012, 01:40     C++ Упорядочить все сверхпростые числа по возростанию.Найти к-ое сверхпростое в етом порядке.
Посмотрите здесь:

C++ Дана матрица m*n. Необходимо упорядочить все числа в порядке возрастания в каждой строке.
C++ упорядочить по возростанию числа большие 2
Данные 6 комплексных чисел упорядочить по возростанию модулей C++
C++ Найти все простые числа в массиве и упорядочить их по возрастанию
Массив: Найти первый максимум в этом массиве, а затем все числа до этого элемента упорядочить по возрастанию, а после — по убыванию. C++
Найти все четные четырехзначные числа, цифры которых следуют в порядке возрастания или убывания C++
Упорядочить массив по возростанию и найти сумму положительных элементов C++
Упорядочить числа в порядке уменьшения C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
13.02.2012, 06:32     C++ Упорядочить все сверхпростые числа по возростанию.Найти к-ое сверхпростое в етом порядке. #2
Цитата Сообщение от greategi Посмотреть сообщение
C++
1
2
GetSuperPrime(k);//удобней функцию использовать отдельно, чтоб в случае ошибки, остледить где ошибка
cout << i << endl;//в функции гетсуперпрайм у тебя return i; значит именно i надо выводить на екран
заменить на:
C++
1
cout << GetSuperPrime(k) << endl;
И небольшое уточнение: тот кто писал эту программу, учитывал что первое сверхпростое число 3, а не 2 (и это правильно).
Yandex
Объявления
13.02.2012, 06:32     C++ Упорядочить все сверхпростые числа по возростанию.Найти к-ое сверхпростое в етом порядке.
Ответ Создать тему
Опции темы

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