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

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

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

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

28.02.2010, 23:13. Просмотров 1048. Ответов 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++):

Вычислить количество простых чисел среди положительных чисел массива - C++
Дан массив целых положительных и отрицательных чисел в количестве меньше или равно 64 . А требуется , Вычислить количество простых чисел...

Дан массив целых чисел. Верно ли, что он состоит только из простых чисел? - C++
Дан массив целых чисел. Верно ли, что он состоит только из простых чисел?

Вводится последовательность целых чисел. Определить среднее арифметическое простых чисел последовательности - C++
Использовать функции в программе Задание: Вводится последовательность целых чисел. Определить среднее арифметическое простых чисел...

Массив целых чисел состоит из n элементов, найти сумму простых чисел, входящих в него - C++
массив целых чисел состоит из n элементов, найти сумму простых чисел, входящих в него.

Дана последовательность целых чисел а1, а2, …, an. Выяснить, является ли она симметричной последовательностью простых чисел - C++
Ребят срочно надо&gt;&lt;

Последовательность чисел, определить среднее арифметическое простых чисел - C++
Вводится последовательность целых чисел, 0 – конец последовательности. Определить среднее арифметическое простых чисел ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
kravam
быдлокодер
1694 / 881 / 44
Регистрация: 04.06.2008
Сообщений: 5,441
01.03.2010, 00:44 #2
Я посмотрелв книжке Брайнда Оверленда "C++ без страха" синтаксис, там оба операнда должны быть типа int, так что в книге ошибка.
mirso
525 / 343 / 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
50 / 49 / 2
Регистрация: 19.03.2009
Сообщений: 320
01.03.2010, 21:32  [ТС] #4
спасибо. теперь все заработало.
в чем будет разница между (static_cast<double>(n)) и ((double)n) ?
mirso
525 / 343 / 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)
Так что удобство с точки зрения читабельности.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.03.2010, 22:04
Привет! Вот еще темы с ответами:

Создать двоичный файл и записать в него n целых чисел.Найти среднее арифметичерское среди простых чисел расположенных после минимального значения. - C++
Добрый день! Помогите пожалуйста с решением данной задачи: Задание: Необходимо написать и отладить две программы в среде Borland C++ 3.1...

квадраты простых чисел - C++
Дана последовательность натуральных чисел, заканчивающаяся нулём. Выдать на экран квадраты простых чисел из этой последовательности,...

Поиск простых чисел - C++
3. Разработать программу поиска простых чисел в отрезке (1..N) целых положительных чисел. Программа должна найти и выдать в виде списка все...

поиск простых чисел - C++
Как найти количество цифр n- значных чисел, у которых сумма любых двух соседних цифр является простым числом. Формат входных данных: В...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
01.03.2010, 22:04
Ответ Создать тему
Опции темы

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