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

Находим сверхпростое число - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.56
Alex_Reilly
0 / 0 / 0
Регистрация: 04.12.2011
Сообщений: 26
12.02.2012, 21:04     Находим сверхпростое число #1
Пожалуйста помогите с проблемой. Никак не могу понять, что не так. Вообщем суть в том, что сверхпростое число - это не только простое число, но у этого простого числа индекс тоже простой. Например число 2 - простое, оно первое в списке простых чисел, но цыфра один - непростое. Значит это не сверхпростое число. Цыфра 3 - простое, и вторая в списке сверхпростых чисел, а двойка в свою очередь тоже простая, значит мы нашли сверхпростое число. В задаче нужно по индексу (который введется с клавиатуры) найти сверхпростое число. К пример введут индекс 1, на екран должна выпасти цыфра 3, потому что она первая в списке простых чисел.
В моём коде я так и делаю. Точно поэтапно,но на екран ничего не выводит. Помогите , подскажите что не так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
while (k=!N)
    {
    if(is_prime(t))//Сдесь просто беру проверяю число на простоту (функция рабочая, проблем нет)
        {
         x++;//сдесь, если число оказывается простым, я присваиваю ему индекс
         if(is_prime2(x))//ту же функцию использую для проверки индекса простого числа на простоту)
              {
                 k++;//если индекс простого числа-простой, то повышаю щётчик сверхпростых чисел
                 cout<<"сверх простое число с индексом "<<k<<"=>"<<t;
               }
                    }
    t++;//повышаю число, которое проверял на простоту
                 }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.02.2012, 21:04     Находим сверхпростое число
Посмотрите здесь:

C++ Находим длину самого длинного числа
В двумерном массиве все числа различны.В каждой строке находим мин.элемент,затем среди этим мин.элементов выбираем максимальный.Напечатать индексы. C++
C++ Упорядочить все сверхпростые числа по возростанию.Найти к-ое сверхпростое в етом порядке. C++
Дано 2-ух-значное число. Сделать так, чтоб программа преобразовала это число в новое число кол-во десятков C++
Некоторое число оканчивается на 2. Если же эту его последнюю цифру переставить на первое место, то число удвоится. Найти это число C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Hi4ko
74 / 74 / 4
Регистрация: 21.10.2010
Сообщений: 376
12.02.2012, 21:54     Находим сверхпростое число #2
Построй решето эратосфена до 1 до нужного числа
потом в вектор заноси простые числа(т.к нумерация начинается с 0, то первым элементом вектора будет 0).
потом из решета эратосфена в векторе чаров проверяешь, является ли данное число простым.
x1Mike7x
 Аватар для x1Mike7x
214 / 127 / 6
Регистрация: 06.11.2010
Сообщений: 234
12.02.2012, 22:14     Находим сверхпростое число #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
bool is_prime( int z, vector < int > P )
{
    bool ip = true;
    for ( int i = 0; P[ i ] * P[ i ] <= z && ip; ++i )
        ip = ip && ( z % P[ i ] != 0 );
    return ip;
}
 
int mega_prime( int index )
{
    vector < int > MP, P;
    P.push_back( 2 );
    for ( int x = 3; index > ( int )MP.size(); x += 2 )
    {
        if ( is_prime( x, P ) )
        {
            P.push_back( x );       
            if ( is_prime( ( int )P.size(), P ) )
                MP.push_back( x );
        }
    }
    return MP.back();
}
http://ideone.com/XA44Y
Alex_Reilly
0 / 0 / 0
Регистрация: 04.12.2011
Сообщений: 26
12.02.2012, 23:08  [ТС]     Находим сверхпростое число #4
Ребят я не просил вам обьяснять как это сделать можно. У меня вариант должен работать, но он не работает, я и спрашиваю, почему он не работает? в чом ошибка?
Hi4ko
74 / 74 / 4
Регистрация: 21.10.2010
Сообщений: 376
12.02.2012, 23:51     Находим сверхпростое число #5
Цитата Сообщение от Alex_Reilly Посмотреть сообщение
Ребят я не просил вам обьяснять как это сделать можно. У меня вариант должен работать, но он не работает, я и спрашиваю, почему он не работает? в чом ошибка?
хм
почему у тебя функции разные?
Alex_Reilly
0 / 0 / 0
Регистрация: 04.12.2011
Сообщений: 26
12.02.2012, 23:59  [ТС]     Находим сверхпростое число #6
Hi4ko, функции идентичные, я просто их скопировал и назвал подругому, когда искал причину неисправности
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
13.02.2012, 00:06     Находим сверхпростое число #7
А начальные значения у переменных k,t,x какие?
Скиньте полную версию программы, чтобы быстрее найти ошибку.

И исправьте
while (k=!N)
на
while (k!=N)
Paporotnik
383 / 227 / 7
Регистрация: 06.07.2011
Сообщений: 512
13.02.2012, 00:12     Находим сверхпростое число #8
я не знаю, что у тебя с функцией, но ты понимаешь, что цикл while у тебя будет крутиться только когда N=0?
Alex_Reilly
0 / 0 / 0
Регистрация: 04.12.2011
Сообщений: 26
13.02.2012, 00:14  [ТС]     Находим сверхпростое число #9
Paporotnik, какбы Н вводится с клавиатуры..Оно по-любому будет больше 0.
Paporotnik
383 / 227 / 7
Регистрация: 06.07.2011
Сообщений: 512
13.02.2012, 00:20     Находим сверхпростое число #10
Если N - ненулевое число, то !N - логическое значение false. И твоя запись k=!N есть установка k либо в 0, если оно числовое, либо в false, если оно булево. а то, что цикл while(false) или while(0) ни разу не отработает, думаю, упоминать не надо.

проще говоря, почти уверен, что имелось ввиду k!=N
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.02.2012, 01:39     Находим сверхпростое число
Еще ссылки по теме:

k-ое сверхпростое число C++
C++ Заменить данное натуральное число на число, которое получается из исходного записью его цифр в обратном порядке. Например, дано число 156, нужно получ
C++ Находим четверть по заданным X и Y

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

Или воспользуйтесь поиском по форуму:
Hi4ko
74 / 74 / 4
Регистрация: 21.10.2010
Сообщений: 376
13.02.2012, 01:39     Находим сверхпростое число #11
Цитата Сообщение от I.M. Посмотреть сообщение
while (k=!N)
на
while (k!=N)
большего и не надо вроде)
Yandex
Объявления
13.02.2012, 01:39     Находим сверхпростое число
Ответ Создать тему
Опции темы

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