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

Переполнение типа. Нахождение простых чисел алгоритмом Лемана. Арифметика остатков - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Открытие файла, найти недочеты в коде http://www.cyberforum.ru/cpp-beginners/thread1116682.html
Добрый вечер. Не получается запустить одну программу, думаю проблемы с файлами. буду очень благодраен за любую помощь #include "stdafx.h" int _tmain(int argc, _TCHAR* argv) { return 0; }
C++ Самый большой простой делитель числа #include <iostream> using namespace std; void main() { setlocale(LC_ALL, "Russian"); cout << "Найдите самый большой делитель сложного числа, являющийся простым числом." << endl; int numb = 0; http://www.cyberforum.ru/cpp-beginners/thread1116680.html
C++ В произвольном тексте заменить арабские цифры символом #
Задается произвольный текст, содержащий не более 10 строк, в каждой строке не более 80 символов. Требуется заменить арабские цифры (0,1,2,3,4,5,6,7,8,9) на символ # Очень срочно! Выручайте!
Для разряженной матрицы целых чисел создать модуль доступа к ней C++
написать на дев с+++ Для разряженной матрицы целых чисел в соответствии с индиви дуальным заданием создать модуль доступа к ней, у котором обеспечить экономию памяти при размещении данных Все нулевые элементы размещены на главной диагонали, в первых 3 строках выше диагонали и в последних 3 строках ниже диагонали
C++ функция strcat http://www.cyberforum.ru/cpp-beginners/thread1116676.html
Помогите разобраться, пожалуйста. char* resultat = 0; char* str = "abc"; strcat(resultat, str); вылетает с ошибкой. Как нужно правильно инициализировать resultat ? и если скажем нужно обрезать на 1 символ, то делаем так: resultat = '\0'; ?
C++ елементы массива #include "stdafx.h" #include<string> #include <cmath> #include <iostream> #include<locale> using namespace std; const int max_size=255; int a,b,rl1={0},i,j,rl2={0},c,k,rl_chislo,kol=0; string rl3; int main() { подробнее

Показать сообщение отдельно
Mars74
1 / 1 / 0
Регистрация: 25.03.2013
Сообщений: 31

Переполнение типа. Нахождение простых чисел алгоритмом Лемана. Арифметика остатков - C++

11.03.2014, 20:38. Просмотров 476. Ответов 0
Метки (Все метки)

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
#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;
              /*//+++++++ арифметика остатков
      double kk0;
  kk0=(p-1)/2;      // показатель степени
  int kk01;
  kk01 = (int) kk0;       //  целая часть показателя степени (p-1) div 2
  cout<<"kk01 = "<< kk01 <<endl;
    int  kk1;
  kk1= fmod(a,p);  // отделяем дробную часть     основание
    int kk2;
  kk2=pow(kk1,kk01);     //    возводим в степень a ^((p-1) div 2)
  long k;
  k= fmod(kk2,p);
  cout<<"!!!!! k = "<< k <<endl;
  //+++++++++ */
  int p01= p-1 ; // для условия
  if (k == 1) {
        cout<<"  Prostoe chislo "<< p  <<endl;
        }
        else if (k == p01 )
        {
        cout<<"  Prostoe chislo "<< p  <<endl;
        }
    else {
        cout<<" Ne prostoe chislo "<< p  <<endl;
    }
    getch(); getch();
    return 0;
}
Когда тестирую большое простое число например 3991139 функция pow в выражении k1=pow(a,k01) выдает переполнение типа.
Пробовала применить арифметику остатков не помогло...
Подскажите пожалуйста как исправить, не понимаю в чем ошибка....
Миниатюры
Переполнение типа. Нахождение простых чисел алгоритмом Лемана. Арифметика остатков  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru