Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Java > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 23.06.2018, 14:39   #1
MoiLogin
Новичок
 
Регистрация: 23.06.2018
Сообщений: 3
Репутация: 10
По умолчанию Нахождение простых чисел.

Задача: Написать программу, которая находила бы простые числа в диапазоне от 2 до 100.


Код:

class Prime {
  public static void main (String args[]){
    int i, j ;
    boolean isprime;
  
    for (i=2; i<100; i++) {
       isprime = true;
   
       // Проверить, делится ли число без остатка.
       for ( j = 2; j < i; j++)
           // Если число делится без остатка, оно простое
           if ((i%j) == 0) isprime = false;
 
       if(isprime)
           System.out.println (i + " is prime.");
     }
  }
}


Код работает, но не могу понять логику алгоритма. У меня на каждом прогоне цикла получаются одинаковые значения i, j. И соответственно остаток от деления в каждом случае равен 0. То есть isprime всегда false.
MoiLogin вне форума   Ответить с цитированием
Старый 23.06.2018, 15:12   #2
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 900
Репутация: 627
По умолчанию

Цитата:
Сообщение от MoiLogin Посмотреть сообщение
И соответственно остаток от деления в каждом случае равен 0
Не понял, какой остаток от деления всегда равен 0. Напишите свои действия подробнее.
Black Fregat вне форума   Ответить с цитированием
Старый 23.06.2018, 15:51   #3
MoiLogin
Новичок
 
Регистрация: 23.06.2018
Сообщений: 3
Репутация: 10
По умолчанию

Цитата:
Сообщение от Black Fregat Посмотреть сообщение
Не понял, какой остаток от деления всегда равен 0. Напишите свои действия подробнее.
Остаток от деления по модулю. Код не мой. Пытаюсь разобрать, но видимо что-то упускаю.
MoiLogin вне форума   Ответить с цитированием
Старый 24.06.2018, 12:17   #4
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 900
Репутация: 627
По умолчанию

Цитата:
Сообщение от MoiLogin Посмотреть сообщение
Код не мой.
С кодом особых проблем нет. Он, как Вы справедливо заметили, работает.
Проблема, видимо, в том, как Вы пытаетесь его разобрать. Вот я и пытаюсь понять, в чём же эта проблема. А Вы молчите, как партизан.

Вот Вы пишете
Цитата:
Сообщение от MoiLogin Посмотреть сообщение
И соответственно остаток от деления в каждом случае равен 0.
Я совершенно не понимаю, почему у Вас остаток от деления в каждом случае равен 0. Например, когда i равен 13, то при всех j от 2 до 12 включительно остаток никак не будет равен 0
Black Fregat вне форума   Ответить с цитированием
Старый 25.06.2018, 01:21   #5
MoiLogin
Новичок
 
Регистрация: 23.06.2018
Сообщений: 3
Репутация: 10
По умолчанию

В общем я разобрался. Все дело оказалось в моем незнании синтаксиса. Во втором цикле не увидев фигурных кавычек, открывающих тело цикла, я подумал что цикл только прогоняет j до значения i. А строка if ((i%j) == 0) isprime = false; сравнивает два одинаковых числа, думал я. Но я забыл что без фигурных кавычек, цикл исполнит следующую за ним строку до точки с запятой и все. И теперь все понятно.
Спасибо за помощь!
MoiLogin вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нахождение простых чисел массива - Pascal ABC pasterr Паскаль 2 06.03.2017 15:40
Нахождение простых чисел через решето Эратосфена (Си) forsazh12 Помощь студентам 3 13.03.2016 13:49
Программа для поиска простых, простых парных и взаимнопростых чисел in da fly Помощь студентам 1 26.05.2011 23:30
выбор из ряда чисел простых чисел изо Паскаль 5 13.04.2011 22:51
Нахождение простых чисел. Lunex.08 Общие вопросы C/C++ 7 10.04.2009 17:01


14:23.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru