Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Как батником задать значение переменной программе Visual C++ пишу в Bat код consol.exe -peremenna 55 -pluss 100 Pause Екзешник consol.exe принемает код Батника запускаеться и выполняет подсчет и выводит на екран 55+100=155 https://www.cyberforum.ru/ cpp-beginners/ thread1140920.html Запись и чтение в тестовый файл C++
Создаете текстовый файл example.txt, содержащий текст "C++ is able to input and output the built - in data types using the stream extraction operator>>and the stream insertiomn operator<<.The stream insertion and stream extraction operators also can be overloaded to perform input and output for user-defined types like an object.". Необходимо заменить в тексте все слова длиной 5 символов на...
C++ В C заносятся из A все отрицательные числа. Потом A дополняется из B числами, перед которыми встречаются отр числа https://www.cyberforum.ru/ cpp-beginners/ thread1140905.html
В C заносятся из A все отрицательные числа. Потом A дополняется из B числами, перед которыми встречаются отрицательные числа.
C++ Сгенерировать две произвольные строки и определить, является ли какое-либо слово первой строки частью второй строки Сгенерировать две произвольные строки и определить, является ли какое-либо слово первой строки частью второй строки. 1. Я дуб дубом,даже не понимаю что надо сделать( 2. Надеюсь на помощь 3. Win32 https://www.cyberforum.ru/ cpp-beginners/ thread1140886.html
В одномерном массиве состоящим из n элементов вычислить номер минимального элемента C++
в одномерном массиве состоящим из n элементов вычислить 1)номер минимального элемента 2)сумма элементов расположенных между первым и вторым отрицательными элементами преобразовать массив так, чтобы сначала располагались все элементы модуль которых меньше 1 ,а потом все- остальные.
C++ Нахождение максимального элемента среди элементов, лежащих выше побочной диагонали матрицы https://www.cyberforum.ru/ cpp-beginners/ thread1140853.html
Дана матрица A размером 7 на 7. Составить программу нахождения максимального элемента среди элементов, лежащих выше побочной диагонали.
C++ Переход на новую строку https://www.cyberforum.ru/ cpp-beginners/ thread1140849.html
Файл открыт в текстовом режиме. Есть строка , ее надо записать в файл, и перейти на новую строку для следующей записи. fputs(stroka,f); Перепробовал несколько вариантов с 0x13 0x10, не прокатило. Как правильно записать в файл?
C++ Одномерные массивы: заполнение, условные операторы
Используя цикл for заполнить одномерный массив действительных чисел, вычисляемых функцией y = fi +3 ( k ) , где i = 23 , а k = 0 , 1 , 2 , ... , 10 . После заполнения массива чисел, используя функцию sin | x | / 0,1 +9,4 sin ( 3x -2 , 5 ) , отсортировать массив по возрастанию . Ввести искомое слово в одномерном массиве. Производить поиск , для поиска введенного элемента в отсортированном...
C++ Сумма байтов числа Написать функцию, принимающую указатель на вещественную переменную типа float и возвращающую сумму составляющих это вещественное число байтов. Не понимаю как это сделать. Я так думаю, нужно завести массив из 4 элементов, и воспользоваться *(char*)&x Но в итоге ничего не получается. https://www.cyberforum.ru/ cpp-beginners/ thread1140820.html C++ Переписать содержимое файла А в файл В, перенося при этом в конец каждой строки все входящие в нее знаки препинания https://www.cyberforum.ru/ cpp-beginners/ thread1140813.html
Дан текстовый файл А. Переписать его содержимое в файл В, перенося при этом в конец каждой строки все входящие в нее знаки препинания. Не знаю, как сделать функцию для переноса знаков препинания в конец строки.... Подскажите кто может. #include <StdAfx.h> #include <fstream> #include <iostream> #include <string> using namespace std; int main()
C++ Калькулятор без приоритета операций
Пересмотрел множество примеров, несколько дней пытался сделать, но не получилось. Может кто помочь? С использованием STL Написать программу для работы калькулятора. Выполняемые операции: + - * / % кв.корень(по клавише V) = очистка текущего значения (по клавише C) занесение результата в памаять (по клавише M) выдача инф. из памяти (по клавише R)
C++ Преобразовать последовательность s1, …, sn, заменив в ней каждую из групп стоящих рядом точек многоточием Сделал таким образом: #include <iostream> #include <fstream> #include <cstdlib> #include <string> int main() { using namespace std; ifstream inFile; https://www.cyberforum.ru/ cpp-beginners/ thread1140708.html
Мой лучший друг-отладчик!
167 / 167 / 30
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
07.04.2014, 05:41 0

Нахождения больших простых чисел - C++ - Ответ 6009155

07.04.2014, 05:41. Показов 3663. Ответов 2
Метки (Все метки)

Лучший ответ Сообщение было отмечено IrineK как решение

Решение

Student_161, а насколько больших? Если просто простых, то Вам думаю подойдет и решето Эратосфена:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <memory.h>
 
void resheto(bool prime[])
{
    for(i=3;(temp=i*i) <=n;i+=2)
        if(prime[i])
            for(j=temp;j<=n;j+=i)
                prime[j]=false;
}
 
int main()
{
    bool *prime=new bool[n+1];
    memset(prime,1,n+1);
    prime[0]=prime[1]=false;
    resheto(prime);
}
Также есть и линейное решето Эратосфена:http://e-maxx.ru/algo/prime_sieve_linear
Можете погуглить в сторону решета Аткина, но оно особо сильного выигрыша не даст, хотя он и будет.

Можно пойти другим путём, проверять числа на простоту. Тут уже подойдет разнообразные тесты. Простой факторизацией - это слишком долго, поэтому тесты обычно вероятностные. Лично я в олимпиадах использую всегда тест Миллера-Рабина, улучшенный со слов Гены Короткевича, который нам лекции читал.Вот код:
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
74
75
76
77
78
79
80
81
82
83
84
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <vector>
 
using namespace std;
typedef long long ll;
 
ll n,s,t,k;
ll p[3]={2,7,61};
 
ll mulmod(ll x,ll y,ll n)
{
    ll res=0;
    while(y)
    {
        if(y&1) res=(res+x)%n;
        x=(x+x)%n;
        y>>=1;
    }
    return res;
}
 
ll powmod(ll x,ll y,ll n)
{
    ll res=1;
    while(y)
    {
        if(y&1) res=mulmod(res,x,n);
        x=mulmod(x,x,n);
        y>>=1;
    }
    return res;
}
 
 
bool miller(ll s,ll t,ll a)
{
    ll x=powmod(a,t,n);
    if(x==1 || x==n-1)  return true;
    for(ll j=1;j<s;++j)
    {
        x=mulmod(x,x,n);
        if(x==1)    return false;
        if(x==n-1)  return true;
    }
    return false;
}
 
bool del()
{
    ll temp=sqrt(n);
    for(ll i=2;i<=temp;++i)
        if(n%i==0)
            return false;
    return true;
}
 
bool check()
{
    if(n<=1)    return false;
    if(n==2)    return true;
    if(n<=100)  return del();
    t=n-1;
    while(!(t&1))
    {
        ++s;
        t>>=1;
    }
    bool ok=true;
    for(ll j=0;j<3 && ok;++j)
        ok=miller(s,t,p[j]);
    return ok;
}
 
 
int main()
{
    cin>>n;
    cout<<check()<<endl;
    system("pause");
    return 0;
}
Тест работает правильно до 10 в 18 степени(дальше не проверял просто).
Также можете смотреть в сторону теста BPSW : http://e-maxx.ru/algo/bpsw

Вернуться к обсуждению:
Нахождения больших простых чисел C++
2
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.04.2014, 05:41
Готовые ответы и решения:

Поиск больших простых чисел
День добрый Столкнулся с необходимостью решить задачу Проверку на простоту реализовываю через...

Алгоритм нахождения простых чисел
Не так давно начал изучать с++. Вот попытался написать программу которая вычисляет простое ли число...

Алгоритм нахождения простых чисел
Не могу найти в интернете нормальный код алгоритма нахождения простых чисел. Помогите пожалуйста. ...

Алгоритм нахождения простых чисел
Вопросы: 1) Нужен алгоритм проверки числа (является ли число простим). Нужно чтобы алгоритм был...

2
07.04.2014, 05:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.04.2014, 05:41
Помогаю со студенческими работами здесь

Программа нахождения простых чисел
Я написал программу но в ней ошибка! Не пойму какая! Но мне важно понять как исправить именно эту...

Методы построения простых больших чисел, теорема Поклингтона
Интересно может кто помоч с курсачем непонимаю ничего с того &quot;Методы построения простых больших...

Алгоритм нахождения ПРОСТЫХ чисел в файле
Заполнить файл f целыми числами, полученными с помощью генератора случайных чисел. Из файла f ...

Подсчитать количество простых чисел в последовательности, больших заданного числа М
Подсчитать количество простых чисел в последовательности, больших заданного числа М. Пример: М=5,...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru