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

Объясните проверку на простое число - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ while(jachejka<1||jachejka>9); // ввод ячейки только http://www.cyberforum.ru/cpp-beginners/thread714385.html
while(jachejka<1||jachejka>9); // ввод ячейки только от 1 до 9 array=(igrok==1)?16:15; igrok=(igrok==1)?2:1; как правилльно понять ?
C++ Класс Аккаунт(наследование) Всё никак не могу понять как выполнить это задание. К примеру, функция calculateInterest класса SavingsAccount которая вычисляет сумму процентов. Я сомневаюсь, что эту сумму можно вычислить, умножая текущий баланс( к примкру 5000) на процентную ставку(к примеру 10%), ведь получится 50000, а этого никак быть не может. Ну и некоторые другие моменты. Полное задание во вложении. #ifndef... http://www.cyberforum.ru/cpp-beginners/thread714360.html
C++ Упорядочить последовательность
Помогите, пожалуйста!!! Нужен код Помогите, пожалуйста!!!! По заданным х0 и n построить последовательность чисел х={х1,х2,...,хn} по закону хi=F(xi-1), i=1,2,3,..,n. Затем эту последовательность упорядочить в новую последовательность y={y1,y2,y3,..,yn} согласно правилу П и найти в у номер r элемента, удовлетворяющего условию А. Входные данные х0,n. Программа должна напечатать два массива...
C++ динамический массв
помогите разобраться и найти ошибку... #include <iostream.h> #include <conio.h> #include <stdlib.h> #include <iomanip.h> class Array { public: int arr_size;
C++ Десериализация двумерного массива http://www.cyberforum.ru/cpp-beginners/thread714295.html
Здравствуйте уважаемые программисты! Существует некий рнр скрипт. $m = 1; $m = "name1"; $m = 2; $m = "name2"; $m = 3; $m = "name3"; $m = 4; $m = "name4"; echo serialize($m);
C++ 2-х мерный массив и заполните его нулями Для поля возьмите 2-х мерный массив и заполните его нулями. Когда ход крестика ставьте вместо нуля - 1, когда нолика - (-1). Подсчитывая сумму на вертикалях, горизонталях и диагоналях можно выявить победителя - если где-то вышло 3 или -3, или определить опасную ситуацию - если 2 или -2. Также замена 0 на 1 или -1 даст возможность проверить можно ли делать ход в определённую клетку - если не 0, то... подробнее

Показать сообщение отдельно
kub
0 / 0 / 0
Регистрация: 30.11.2012
Сообщений: 12

Объясните проверку на простое число - C++

30.11.2012, 15:32. Просмотров 817. Ответов 6
Метки (Все метки)

Подскажите пожалуйста, сам я из леса и разобраться не получается, есть программа проверяющая число на простоту. Читаю книгу "С++ без страха", так вот без страха пока что то не очень Вопросы следующие:
1. Почему автор объявление переменной int is_prime; называет Булев флаг? На мой взгляд это просто целочисленная переменная.
2. С is_prime = true; тоже плохо понятно, дайте пожалуйста какие нибудь комментарии по этому поводу.
3. Объясните пожалуйста еще эту строку while (i <= sqrt(static_cast<double>(n))), что тут происходит не совсем понятно.

Всё действо у меня происходит в Visual Studio 2012, если это конечно на что то влияет.

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
#include <iostream>
#include <math.h>
using namespace std;
 
int main() {
    int  n;   // Проверяемое число
    int  i;   // Счетчик циклов
    int  is_prime;   // Булев флаг
 
    // Предположим что число является простым пока не докажем обратное
 
    is_prime = true;
 
    // Считываем число с клавиатуры
 
    cout << "Enter a number and press ENTER: ";
    cin >> n;
    
    // Проверка числа, выполняя проверку делимости
    //  на все целые числа от 2 до sqrt(n).
 
    i = 2;    
    while (i <= sqrt(static_cast<double>(n))) {
              // пока значение переменной i <= sqrt(n),
        
    if (n % i == 0)    // если значение переменной i,
                           // случайно делится на n
        is_prime = false;  // n не является простым числом
       
        i++;       // прибавить 1 к значению переменной i            
    }
 
    // Напечатать результаты
 
    if (is_prime)
        cout << "Number is prime.";
    else
        cout << "Number is not prime.";
 
    return 0;
}
Спасибо заранее
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru