Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Sekt
157 / 156 / 47
Регистрация: 29.04.2009
Сообщений: 637
#1

Сортировка Простых чисел - C++

01.05.2009, 19:20. Просмотров 1099. Ответов 10
Метки нет (Все метки)

Это код сортировки простых чисел
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int flAg=0;// Сравнитель обычно такую вещь называю
        int counter=0; // счетчик
        int number=1000;// значение
        int *pocket=new int [10000000]; //указатель на массив (динамически)
        while (number<=2000)//  выполнять до значения   
        {
            for (int i=2; i<=sqrt((double)number); i++) // цикл поиска простых чисел
                if ((number%i)==0)  flAg=1; 
            if (flAg==0) // если подходит под значение number%i)==0 значит число непростое и берется след. значение счетчика
            {
                pocket[counter]=number;  counter++;
            }        number++;   flAg=0;
        }       
        for (int i=0; i<counter; i++)   // подстановка в массив значений и увеличение счетчика и значения если условие верно (flag==0)
            std::cout << pocket[i] << std::endl;// цикл по массиву и вывод на экран.
Как вывести на экран простое самое близкое простое число
от
pow(10,100)-n=prime number;
Взять цикл надо от pow(10,100)до pow(10,99) и потом break до первого простого числа но как
вывести на экран?Требуются специальные программы?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.05.2009, 19:20
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Сортировка Простых чисел (C++):

Сортировка массива, удаление простых чисел
.Задан массив Z(m) целых чисел. Если массив является знакочередующимся, то...

Интервал простых чисел и сортировка по убыванию
Из заданного интервала вывести все числа по убыванию.Границы интервала задаются...

Сортировка строк матрицы по количеству простых чисел
Имеется файл, в нём написаны 25 чисел квадратом 5х5 примерно таким образом: 34...

Сортировка строк матрицы по количеству простых чисел
Имеется файл, в нём написаны 25 чисел квадратом 5х5 примерно таким образом: ...

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

Вычислить количество простых чисел среди положительных чисел массива
Дан массив целых положительных и отрицательных чисел в количестве меньше или...

10
galileopro
Пробующий
184 / 97 / 8
Регистрация: 28.04.2009
Сообщений: 1,040
02.05.2009, 19:28 #2
Можн попробовать сделать функцию, которая будет записывать в динамический массив число поэлементно, а затем выводить на экран без пробелов. Для организации этого массива я когда-то применял div и mod для длинных чисел, написанные правда на Паскале. Ну типа берешь находишь мод этого числа-массива на 10 и это последняя цифра, а потом делишь нацело это число на 10 (длинный див), результат записываешь в массив обратно. Так продолжается, пока не будут выделены все цифры. Див и мод прийдется писать отдельными функциями.

Добавлено через 20 часов 1 минуту 24 секунды
Кстати, если поможет, то для написания длинных дива и мода нужно вспомнить, как в третьем классе делили в столбик Так как алгоритм построен именно на этом.
Ну примерно это будет выглядеть так:
Это Див для массива и целого числа p (Делим массив на p нацело):
C++
1
2
3
4
5
6
7
8
9
function Mass DivLong(Mass h; int p){//Mass - исходное длинное число
var Mass t; //Mass - массив целых чисел размером n
var int m;
for(var i=0;i<=n-1;i++){
t[i]=(h[i]*10+h[i+1])div p;
h[i+1]=(h[i]*10+h[i+1])mod p;
}
return t;
}
В результате получим массив - результат деления нацело.
Кстати p здесь двузначное. Если нужно больше, то прийдется немного изменить.
Кстати, для десяитчной системы счисления там будет еще проще.
1
Gravity
569 / 563 / 64
Регистрация: 29.01.2009
Сообщений: 1,274
02.05.2009, 19:41 #3
В Си деление целых делается так же, как и деление чисел с плавающей запятой, оператором "/", а значение по модулю находится оператором "%". Не надо заново изобретать велосипед.
0
Monte-Cristo
2794 / 1380 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
02.05.2009, 19:45 #4
Цитата Сообщение от Gravity Посмотреть сообщение
function Mass DivLong(Mass h; int p){//Mass - исходное длинное число
var Mass t; //Mass - массив целых чисел размером n
var int m;
for(var i=0;i<=n-1;i++){
t[i]=(h[i]*10+h[i+1])div p;
h[i+1]=(h[i]*10+h[i+1])mod p;
}
return t;
}
Что это за язык такой ???????


Цитата Сообщение от Gravity Посмотреть сообщение
значение по модулю находится оператором "%".
может я не совсем понял вас, но оператором % находится остаток от деления.
0
Gravity
569 / 563 / 64
Регистрация: 29.01.2009
Сообщений: 1,274
02.05.2009, 19:51 #5
Цитата Сообщение от Monte-Cristo Посмотреть сообщение
может я не совсем понял вас, но оператором % находится остаток от деления.
Остаток от деления или деление по модулю - это одно и то же.
0
Monte-Cristo
2794 / 1380 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
02.05.2009, 20:05 #6
ну тогда так и надо было писать: значение деления по модулю
если честно, первый раз слышу о таком названии.
0
galileopro
Пробующий
184 / 97 / 8
Регистрация: 28.04.2009
Сообщений: 1,040
02.05.2009, 20:56 #7
Язык там C++, но писал на скорую руку и там ошибки.
Применять \ и % можно, но я так понимаю, что проблема в том, что чило либо очень длинное, и эти операции не работают, либо это число вообще поразрядно записано в динамический массив.
Код Дива я переписывал с ранее мною написанного кода на Паскале, поэтому там ошибки. Но понять суть алогритма там можно.

Добавлено через 2 минуты 15 секунд
Может так:
C++
1
2
3
4
5
6
7
8
function Mass DivLong(Mass h; int p){    //Mass - исходное длинное число
var Mass t;        //Mass - массив целых чисел размером n
for(var i=0;i<=n-1;i++){
t[i]=(h[i]*10+h[i+1])/ p;
h[i+1]=(h[i]*10+h[i+1])% p;
}
return t;
}
0
Monte-Cristo
2794 / 1380 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
02.05.2009, 21:01 #8
Цитата Сообщение от galileopro Посмотреть сообщение
Язык там C++, но писал на скорую руку и там ошибки.
вообщем-то, просто это не очень похоже на си++... прежде всего словами function и var
0
galileopro
Пробующий
184 / 97 / 8
Регистрация: 28.04.2009
Сообщений: 1,040
02.05.2009, 21:07 #9
А ну да точно
Типа этого:
C++
1
2
3
4
5
6
7
8
 Mass DivLong(Mass h; int p){    //Mass - исходное длинное число
Mass t;        //Mass - массив целых чисел размером n
for(var i=0;i<=n-1;i++){
t[i]=(h[i]*10+h[i+1])/ p;
h[i+1]=(h[i]*10+h[i+1])% p;
}
return t;
}
Добавлено через 1 минуту 49 секунд
Я забыл совсем,что var можно не писать, и для объявления функции нужно только указать тип возвращаемого результата.
0
Monte-Cristo
2794 / 1380 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
02.05.2009, 21:19 #10
а в цикле for что у вас var делает?
при перечеслении аргументво функции, ставится, а не ;

p.s: так что такое Mass ?
0
galileopro
Пробующий
184 / 97 / 8
Регистрация: 28.04.2009
Сообщений: 1,040
02.05.2009, 21:25 #11
Mass - это объявленный где-либо вне функции глобальный массив из целых чисел количеством n чисел. А вместо var i=0 надо писать int i=0 похоже. Вообще у Sekt число записывается в динамический массив и походу там можно просто с помощью операции взятия адреса обратиться к каждой цифре числа и вывести их без пробелов на экран. Наверно. Еще не пробовал.
0
02.05.2009, 21:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.05.2009, 21:25
Привет! Вот еще темы с решениями:

Дан массив целых чисел. Верно ли, что он состоит только из простых чисел?
Дан массив целых чисел. Верно ли, что он состоит только из простых чисел?

Вводится последовательность целых чисел. Определить среднее арифметическое простых чисел последовательности
Использовать функции в программе Задание: Вводится последовательность целых...

Сортировка методом простых вставок
Сортировка методом простых вставок - алгоритм S с. Вычисление трудоемкости...

Дана последовательность целых чисел а1, а2, …, an. Выяснить, является ли она симметричной последовательностью простых чисел
Ребят срочно надо&gt;&lt;


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru