Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
IgorBr
0 / 0 / 0
Регистрация: 27.06.2012
Сообщений: 74
1

Разбор кода, определяющего, является ли число простым

27.06.2012, 22:14. Просмотров 603. Ответов 6
Метки нет (Все метки)

Здравствуйте. Учусь по Шилдту и возник вопрос по коду.

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
using System;
 
class ChkNum {
    public bool IsPrime(int x)
    {
        if (x <= 1) return false;
        for (int i = 2; i <= x / i; i++)
            if ((x % i) == 0) return false;
 
        return true;
            }
    }
 
namespace Lerning 
{
    class Program
    {
        static void Main(string[] args)
        {
            ChkNum ob = new ChkNum();
 
            for (int i = 2; i < 10; i++)
                if (ob.IsPrime(i)) Console.WriteLine(i + " prostoe");
                else Console.WriteLine(i + "ne prostoe");
 
 
        }
    }
}
Вот в этом месте ob.IsPrime(i) в методе переменной х присваивается значение 2. Почему позже вот здесь
for (int i = 2; i <= x / i; i++) не возникает ошибки, ведь переменной i тоже присваивается 2. А 2/2 будет 1. Значит условие не выполняется. Объясните кому не сложно вкратце ход выполнения программы. Считаю лучше сразу разъяснить непонятные места, чем потом буксовать) Спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.06.2012, 22:14
Ответы с готовыми решениями:

Определить является ли число простым
Здравствуйте! Подскажите, как быстро в приложении определить является ли число...

Выяснить, является ли число простым
2.Дано натуральное число. Выяснить, является ли оно простым (простым называется...

Является ли целое число простым
static void Main(string args) { Console.Write(&quot;введите...

Проверить является ли число простым
Проверить является ли число простым. Составить программу.

Проверить, является ли число простым?
проверить является ли число простым?

6
Alex_Sabaka
628 / 489 / 77
Регистрация: 28.07.2010
Сообщений: 895
Завершенные тесты: 3
27.06.2012, 22:29 2

Не по теме:

Цитата Сообщение от IgorBr Посмотреть сообщение
Объясните кому не сложно вкратце ход выполнения программы.
Деббагер? Не, не слышал!


Если в метод передать число 2, то условие из цикла будет ложным, т.к. 2 / 2 == 1 и, следовательно, выражение 2 < 1 ложно. Т.е. цикл ни разу не выполнится. Никаких ошибок тут не будет.
0
IgorBr
0 / 0 / 0
Регистрация: 27.06.2012
Сообщений: 74
27.06.2012, 22:30  [ТС] 3
Но цикл выполняется.
0
Alex_Sabaka
628 / 489 / 77
Регистрация: 28.07.2010
Сообщений: 895
Завершенные тесты: 3
27.06.2012, 22:34 4
Цитата Сообщение от IgorBr Посмотреть сообщение
Но цикл выполняется.
Специально для вас продеббажил ф-цию IsPrime, при входе ф-ции 2 цикл НЕ выполняется.
0
kolorotur
Эксперт .NET
10501 / 8686 / 2162
Регистрация: 17.09.2011
Сообщений: 14,906
Завершенные тесты: 1
27.06.2012, 22:39 5
Цитата Сообщение от IgorBr Посмотреть сообщение
Но цикл выполняется.
Ваши доказательства?
0
IgorBr
0 / 0 / 0
Регистрация: 27.06.2012
Сообщений: 74
27.06.2012, 22:58  [ТС] 6
Цикл не выполняется. При х = 6 вот это место
C#
1
2
 for (int i = 2; i <= x / i; i++)
            if ((x % i) == 0) return false;
исполняется дважды? И если да, наращенная i при следующем цикле при х = 7, остаётся тройкой или снова двойка? Спасибо
0
kolorotur
Эксперт .NET
10501 / 8686 / 2162
Регистрация: 17.09.2011
Сообщений: 14,906
Завершенные тесты: 1
27.06.2012, 23:11 7
Цитата Сообщение от IgorBr Посмотреть сообщение
исполняется дважды?
Единожды.

Цитата Сообщение от IgorBr Посмотреть сообщение
наращенная i при следующем цикле при х = 7, остаётся тройкой или снова двойка?
i увеличивается на единицу после каждой итерации, х остается неизменной на протяжении всего метода.
Если подразумевается новый вызов метода IsPrime, то каждый раз i начинается с двойки.
0
27.06.2012, 23:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.06.2012, 23:11

Проверить является ли число простым
Проверить является ли число простым

Рекурсивно определить является ли число простым
Есть программа которая определяет является ли число простым (2, 3, 5, 7, 11,...

Программа проверки является ли число простым
Написать программу в Visual Studio которая проверяет числа введенное...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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