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

вычисление простых чисел - C++

Восстановить пароль Регистрация
 
freeman27015
 Аватар для freeman27015
50 / 49 / 2
Регистрация: 19.03.2009
Сообщений: 320
28.02.2010, 23:13     вычисление простых чисел #1
в книге написана программа, про вычисление простых чисел.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
    int n;
    bool prostoe = true;
    double koren = sqrt(double(n));
    cout <<"vvedite chislo ";
    cin >> n;
    for (int i=2; i<=koren; i++){
        if(koren%i==0)  
         prostoe = false;
         break;
            }
        if (prostoe) {
            cout <<"prostoe";}
        else {cout <<"ne prostoe";}
    system("pause");
    return 0;
}
но у меня в DevC++ выдает ошибку:
invalid operands of types `double' and `int' to binary `operator%'
программу конечно можно исправить

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
    int n;
    bool prostoe = true;
    cout <<"vvedite chislo ";
    cin >> n;
    for (int i=2; i<=sqrt(static_cast<double>(n)); i++){
        if(n%i==0)  
         prostoe = false;
         break;
            }
        if (prostoe) {
            cout <<"prostoe";}
        else {cout <<"ne prostoe";}
    system("pause");
    return 0;
}
но возникает вопрос, в книге опечатка или может я не так чтото понял ?
и кстати в чем будет разница между sqrt(static_cast<double>(n)) и sqrt((double)n) ?
и как можно сделать чтобы я во время цикла не вычислял sqrt, а вычислил бы до него.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.02.2010, 23:13     вычисление простых чисел
Посмотрите здесь:

C++ Создать двоичный файл и записать в него n целых чисел.Найти среднее арифметичерское среди простых чисел расположенных после минимального значения.
Массив целых чисел состоит из n элементов, найти сумму простых чисел, входящих в него C++
C++ Дана последовательность целых чисел а1, а2, …, an. Выяснить, является ли она симметричной последовательностью простых чисел
Последовательность чисел, определить среднее арифметическое простых чисел C++
цикл простых чисел C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
01.03.2010, 00:44     вычисление простых чисел #2
Я посмотрелв книжке Брайнда Оверленда "C++ без страха" синтаксис, там оба операнда должны быть типа int, так что в книге ошибка.
mirso
523 / 341 / 17
Регистрация: 05.04.2009
Сообщений: 709
01.03.2010, 00:53     вычисление простых чисел #3
freeman27015,
там точно ашыпки!
Цитата Сообщение от freeman27015 Посмотреть сообщение
double koren = sqrt(double(n));
* * cout <<"vvedite chislo ";
* * cin >> n;
должно быть наоборот
C++
1
2
3
    cout <<"vvedite chislo ";
    cin >> n;
    double koren = sqrt(double(n));
иначе зачем cin >> n;
freeman27015
 Аватар для freeman27015
50 / 49 / 2
Регистрация: 19.03.2009
Сообщений: 320
01.03.2010, 21:32  [ТС]     вычисление простых чисел #4
спасибо. теперь все заработало.
в чем будет разница между (static_cast<double>(n)) и ((double)n) ?
mirso
523 / 341 / 17
Регистрация: 05.04.2009
Сообщений: 709
01.03.2010, 22:04     вычисление простых чисел #5
Цитата Сообщение от freeman27015 Посмотреть сообщение
в чем будет разница между (static_cast<double>(n)) и ((double)n) ?
Мое мнение такое - просматривая огромный код,
программисту понятнее что делается в этой операции
C++
1
i = sqrt(static_cast<double>(n)
чем просто
C++
1
 i = sqrt(double(n))
Цитата Сообщение от freeman27015 Посмотреть сообщение
sqrt(static_cast<double>(n))
и sqrt((double)n)
Так что удобство с точки зрения читабельности.
Yandex
Объявления
01.03.2010, 22:04     вычисление простых чисел
Ответ Создать тему
Опции темы

Текущее время: 12:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru