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

Найти первое простое число, превосходящее 10^(100) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ инициализация указателя http://www.cyberforum.ru/cpp-beginners/thread1011083.html
class Item { public: Item() { num0=new char("как");//ошибка cannot convert from 'const char ' to 'char' num1=new char("это");//ошибка cannot convert from 'const char ' to 'char' num2=new char("исправить");//ошибка cannot convert from 'const char ' to 'char' } char* num0;
C++ Машина Поста (да пофиг) #include <iostream> #include <fstream> #include <istream> #include <stdlib.h> #include <string> using namespace std; struct rule{ string Left; http://www.cyberforum.ru/cpp-beginners/thread1011082.html
Найти корни квадратного уравнения C++
Помогите решить. Найти корни квадратного уравнения y=ax2+bx+c, b– вводится с клавиатуры, a=3b-3, c=a-3b.
C++ перевести на двумерный массив
1. #include <iostream> using namespace std; int main(){ int n;cout<<"n=";cin>>n; int a; for (int i=0;i<n;++i) {cout<<"a="; cin>>a; if (a<0)a=5;} for (int i=0; i<3;++i)cout<<a<<endl; system ("pause");
C++ Инкремент указателей и как обратиться к "промежуточному" адресу переменной http://www.cyberforum.ru/cpp-beginners/thread1011057.html
Доброго времени суток! Пусть указатель указывает на адрес переменной типа int. Переменная типа int занимает 4 байта (пускай она находится по адресу 0x100). Тогда указатель указывает на адрес 0x100. Почему инкрементируя адрес в указателе на 1, указатель указывает на адрес 0x104, а не на 0x101? И что получится, если обратиться к адресу 0x101? Наверное, вопрос глупый. Прошу прощения
C++ Массивы Пусть t0=1, tk= t0+ tk-2+…+ tk-10, k=1,2,… Получить t10 подробнее

Показать сообщение отдельно
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
20.11.2013, 09:40     Найти первое простое число, превосходящее 10^(100)
Использована библиотека http://www.boost.org/doc/libs/1_54_0...tml/index.html.
Быстро находит первое простое число после 10^100, однако т.к. логарифма для инта в библиотеке нету, а реализовывать его самому совсем не хочется использую 1, вместо log2(m).
http://ru.wikipedia.org/wiki/%D0%A2%...B8%D0%BD%D0%B0

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <boost/multiprecision/cpp_int.hpp>
#include <boost/multiprecision/integer.hpp>
#include <boost/multiprecision/miller_rabin.hpp>
 
namespace mp = boost::multiprecision;
 
int main()
{
   mp::cpp_int value = mp::pow(mp::cpp_int(10), 100);
   auto is_prime = [](const mp::cpp_int& v)
   {
      return mp::miller_rabin_test(v, 1);
   };
   while (!is_prime(value))
   {
      ++value;
   }
   std::cout << value << std::endl;
}
 
Текущее время: 10:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru