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

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

Войти
Регистрация
Восстановить пароль
 
freeman27015
 Аватар для freeman27015
50 / 49 / 2
Регистрация: 19.03.2009
Сообщений: 320
#1

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

28.02.2010, 23:13. Просмотров 981. Ответов 4
Метки нет (Все метки)

в книге написана программа, про вычисление простых чисел.

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 целых чисел.Найти среднее арифметичерское среди простых чисел расположенных после минимального значения.
C++ квадраты простых чисел
C++ Генерация простых чисел
Последовательность чисел, определить среднее арифметическое простых чисел C++
Вывод простых чисел C++
Нахождение простых чисел.( C++
C++ как вычислить количество простых чисел среди положительных чисел массива
C++ Поиск простых чисел
Генератор простых чисел C++
Поиск простых чисел C++
C++ Вычислить количество простых чисел среди положительных чисел массива
C++ поиск простых чисел

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kravam
быдлокодер
 Аватар для kravam
1513 / 873 / 44
Регистрация: 04.06.2008
Сообщений: 5,304
01.03.2010, 00:44     вычисление простых чисел #2
Я посмотрелв книжке Брайнда Оверленда "C++ без страха" синтаксис, там оба операнда должны быть типа int, так что в книге ошибка.
mirso
524 / 342 / 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
524 / 342 / 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     вычисление простых чисел
Ответ Создать тему
Опции темы

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