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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 24, средняя оценка - 4.88
AgentumA
2 / 1 / 0
Регистрация: 05.05.2010
Сообщений: 75
#1

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

24.11.2010, 18:47. Просмотров 3187. Ответов 2
Метки нет (Все метки)

Ребят,вот прожка...проверка простоты чисел на основе малой теоремы ферма...
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
#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <stdlib.h>
#include <time.h>
 
using namespace std;
 
int main()
{
int n; //проверяемое число  
int i; //счетчик циклов
int k; //количество циклов
int a; //основание
int b;
cout << "Test Ferma" << endl << "Enter number: ";
cin >>n;
cout << "Kolichestvo tsiklov: ";
cin >>k;
bool sim_prime; 
sim_prime=true; //предположение, что число n правдоподобно простое  
int rand_2toN(int n);
for (i=0; i<k; i++) //проверка на простоту
{
a=rand_2toN(n)+1;  // выбор случайного основания от 2 до n-1
b=(static_cast<int>(pow(a, n-1)))%n;     
if (b!=1)
{
sim_prime=false;
break;
}
}
if (sim_prime)
cout << "Chislo pravdopodobno prostoe";
else
cout << "Chislo sostavnoe " << a << " - svidetel'";
cin.get();
cin.get();
return 0;
}
int rand_2toN(int n)
{
return rand() %n-3;   
}
при компиляции вылазит:
1>c:\documents and settings\admin\мои документы\visual studio 2008\projects\ferma\ferma\ferma.cpp(28) : error C2668: 'pow' : ambiguous call to overloaded function
1> c:\program files\microsoft visual studio 9.0\vc\include\math.h(575): could be 'long double pow(long double,int)'
1> c:\program files\microsoft visual studio 9.0\vc\include\math.h(527): or 'float pow(float,int)'
1> c:\program files\microsoft visual studio 9.0\vc\include\math.h(489): or 'double pow(double,int)'
1> while trying to match the argument list '(int, int)'
1>Build log was saved at "file://c:\Documents and Settings\Admin\Мои документы\Visual Studio 2008\Projects\ferma\ferma\Debug\BuildLog.htm"
1>ferma - 1 error(s), 0 warning(s)


в чем трабла?просто если менять типы переменных,то неправильно вроде считает...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2010, 18:47     Проверка простоты чисел
Посмотрите здесь:

Проверка простоты числа - C++
Объясните плиз что значит =! , pc - это функция проверки на простоту числа do { cout &lt;&lt; &quot;Vvedite prostoe P: &quot;; cin &gt;&gt; p; ...

Тест простоты - C++
Выдаёт ошибку выполнения: деление на 0 в строке 13. Подскажите, что не так? long prime_test (const long&amp; x) { std::vector&lt;long&gt;...

Программа проверки простоты по алгоритму - C++
Алгоритм описан ниже на фото , нужно чтоб пользователь вводил число n и программа проверяла &quot;простое&quot; или &quot;составное число&quot; и выводила...

Ограничение на ввод чисел и проверка чисел - C++
решить квадратное уравнение. Сделала задачу, а преподаватель сказал, что это слишком легко и усложнила задачу, т.е. теперь нужна проверка...

Исследовать эффективность двух алгоритмов определения простоты числа - C++
дали задание: Цель: Следует выбрать эффективный алгоритм (по времени) теста простоты числа. На исследование вам дается два алгоритма: ...

Проверка чисел - C++
Здравствуйте форумчане. Вообщем это код для проверки введенного значения, но проверяет только целые числа, а мне надо допустим -16.875 ...

Проверка ввода чисел - C++
Есть цикл: struct WvsB{ int PLAYER; int PLAYER1; }; ---

Проверка чисел на неотрицательность - C++
Задача: Проверить лежат ли 4 точки в первом квадранте. Сделал блок-схему и код. Блок-схему одобрили, код не робит. Компилируется, выводится...

Проверка кратности чисел. - C++
Программа должна выводить все числа кратные 11-ти в заданном диапазоне: void main() { int i=10,lim; cout&lt;&lt;&quot;Enter upper limit:\n&quot;; ...

Проверка символов и чисел - C++
Определить, в каком формате записан номер мобильного телефона для номеров операторов UMC и Киевстар. (Международный, национальный,...

Проверка делимости чисел - C++
Даны два целых числа a и b. Если a делится на b или b делится на a, то вывести 1, иначе – любое другое число. Условные операторы и...

Проверка чисел на простоту - C++
сам код #include &quot;stdafx.h&quot; #include &quot;iostream&quot; #include &quot;vector&quot; using namespace std; int f(int n) { vector&lt;char&gt;...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
RepoMen
13 / 2 / 1
Регистрация: 24.11.2010
Сообщений: 10
24.11.2010, 19:21     Проверка простоты чисел #2
Цитата Сообщение от AgentumA Посмотреть сообщение
в чем трабла?
у тебя pow в качесве аргумента получает два числа типа int
Matan!
268 / 119 / 23
Регистрация: 31.05.2013
Сообщений: 1,016
Записей в блоге: 2
Завершенные тесты: 1
31.05.2013, 15:08     Проверка простоты чисел #3
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
#include <iostream>
#include <math.h>
#include <stdlib.h>
#include <time.h>
 
 
int main()
{
    int n; //проверяемое число  
    int i; //счетчик циклов
    int k; //количество циклов
    int a; //основание
    int b;
    std::cout << "Test Ferma" << std::endl << "Enter number: ";
    std::cin >> n;
    std::cout << "Kolichestvo tsiklov: ";
    std::cin >> k;
    bool sim_prime; 
    sim_prime=true; //предположение, что число n правдоподобно простое  
    int rand_2toN(int n);
    for (i=0; i<k; i++) //проверка на простоту
    {
        a=rand_2toN(n)+1;  // выбор случайного основания от 2 до n-1
        int q, N; 
        N=n-1;
        q=pow(static_cast<double>(a), N);
        b=(static_cast<int>(q%n));     
        if (b!=1)
        {
            sim_prime=false;
            break;
        }
    }
    if (sim_prime)
    std::cout << "Chislo pravdopodobno prostoe";
    else
    std::cout << "Chislo sostavnoe " << a << " - svidetel'";
    std::cin.get();
    std::cin.get();
    return 0;
}
int rand_2toN(int n)
{
    return rand() %n-3;   
}
Ответ Создать тему
Опции темы

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