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

Возведение в степень по модулю для большого числа - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Функция перевода символа в цифру http://www.cyberforum.ru/cpp-beginners/thread1116784.html
Здравствуйте! Хочу написать программу для перевода символа в цифру с помощью функции. int Func(char s) { if (s >='0' && s <='9') return s - '0'; else return -1; }Столкнулся с проблемой громоздкого кода. Можно ли организовать это несколькими строками,чтобы "блондинке понятно было"?:) Заранее спасибо.
C++ Ввести 2 слова через пробел, сравнить их на эквивалентность #include "stdio.h" #include "iostream" #include "stdlib.h" #include "conio.h" using namespace std; int main() { char res; char a; http://www.cyberforum.ru/cpp-beginners/thread1116779.html
C++ Подсказка ко всем методам и ко всем их параметрам
Уже сколько времени гуглю и всё впустую!! Я пишу некую классовую структуру. Она достаточно быстро разрастается и держать в голове качественное содержание всех объектов и методов классов проблематично. И я бы хотела кратко дать подсказку ко всем методам и ко всем их параметрам. Вроде разобралась, как дать подсказку самому методу. Выглядит это примерно так: CPoint(int n); // Конструктор...
C++ Удаление элементов массива
Игра Го - http://ru.wikipedia.org/wiki/%D0%93%D0%BE нужен алгоритм, для удаления камней, захваченных соперником. элемент окружен, если "выше", "ниже", "справа", "слева" от него есть "вражеские" элементы группа элементов окружена, если вокруг группы есть "вражеские" элементы двойки окружены 1 1 1 1 1
C++ Апроксимация.Методо линейной интерполяции http://www.cyberforum.ru/cpp-beginners/thread1116747.html
Здравствуйте!Помогите,пожалуйста,найти ошибку в коде.Выдаёт неверные корни,следовательно,большую погрешность. #include<iostream> #include<math.h> using namespace std; int main (void) { int i,j,m=11; double x_t,x_m={0},y={0},y_m,x,polinom,pogr,a=-4,b=2,n=2; for(i=1;i<=m;i++) {
C++ Выделение 15Гб под массив на C++ Здравствуйте, стоит задание выделить 15 Гб памяти на жестком диске под массив с помощью malloc на C++. Проблема в том что приложение моё выделяет чуть больше 2Гб и больше не может. Нужно видимо отключить какую-то проверку выделяемого объема памяти в системе, подсказали в переменные среды смотреть, а что там? Важно закрепить за процессом 15Гб памяти. Файл подкачки поставил в чуть больше 15Гб... подробнее

Показать сообщение отдельно
Mars74
1 / 1 / 0
Регистрация: 25.03.2013
Сообщений: 31
11.03.2014, 22:16     Возведение в степень по модулю для большого числа
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
#include <vcl.h>
#pragma hdrstop
#include <iostream>
#include <math.h>
#include <conio.h>
using namespace std;
//---------------------------------------------------------------------------
#pragma argsused
int main()
{  int a,p;
 
  cout << "chislo dla testa: "; cin >> p ;
   a = rand() % (p-1);
  cout << "chislo a = " << a << endl ;
 //k= a ^((p-1) div 2) mod p;  - вычисляем по поэтапно
  double k0;
  k0=(p-1)/2;      // показатель степени
  int k01;
  k01 = (int) k0;       //  целая часть показателя степени (p-1) div 2
  cout<<"k01 = "<< k01 <<endl;
 
  int k1;
  k1=pow(a,k01);     //    возводим в степень a ^((p-1) div 2)
   cout<<"k1 = "<< k1 <<endl;
   int  k;
  k= fmod(k1,p);  // отделяем дробную часть
  cout<<"!!!!! k = "<< k <<endl;
    getch(); getch();
    return 0;
}
Нужно вычислить k= (a ^((p-1) div 2)) mod p; для больших чисел
например для числа 3991139 функция pow в выражении k1=pow(a,k01) выдает ошибку переполнение типа.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 05:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru