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

Функция определения простых чисел - C++

Восстановить пароль Регистрация
 
serg47
0 / 0 / 0
Регистрация: 22.02.2014
Сообщений: 15
19.03.2014, 17:20     Функция определения простых чисел #1
Здравствуйте! Это функция определения простых чисел.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
bool isSimple(int num)
    {
    if (num < 2)
        return false;
    else
        {
        for (int i = 2; i <= sqrt(num); i++)
            if (num % i == 0)
                return false;
            
        return true;
        }
    }
Объясните пожалуйста, построчно, если в функцию приходит например 9, что она вернет?
И почему 2 возвращает true?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,538
Записей в блоге: 27
19.03.2014, 17:32     Функция определения простых чисел #2
например 9, что она вернет?
Вернет false, потому 9 не простое число.
И почему 2 возвращает true?
Потому что два - это простое число.
jurok_85
226 / 209 / 70
Регистрация: 21.02.2013
Сообщений: 494
19.03.2014, 17:32     Функция определения простых чисел #3
Просто́е число́— это натуральное число, имеющее ровно два различных натуральных делителя: единицу и само себя. 2 является простым а 9 нет так как оно еще и на 3 делится функция вернет false
serg47
0 / 0 / 0
Регистрация: 22.02.2014
Сообщений: 15
19.03.2014, 19:15  [ТС]     Функция определения простых чисел #4
Если в функцию приходит 2, соответственно num=2. В циклe i=2. Таким образом, 2 % 2 = 0. Условие истинно, значит дальше должен выполняться return false. Почему возвращается true?
jurok_85
226 / 209 / 70
Регистрация: 21.02.2013
Сообщений: 494
19.03.2014, 19:21     Функция определения простых чисел #5
а второе условие что i <= sqrt(2) ты учел,? программа даже не войдет в цикл
serg47
0 / 0 / 0
Регистрация: 22.02.2014
Сообщений: 15
19.03.2014, 19:38  [ТС]     Функция определения простых чисел #6
Ну вот теперь, все ясно!
Yandex
Объявления
19.03.2014, 19:38     Функция определения простых чисел
Ответ Создать тему
Опции темы

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