Условные операторы для определения простых чисел - Java

Узнай цену своей работы

Формулировка задачи:

Добрый день. У меня программка для определения простых чисел в диапазоне от 2 до 7. Не могу понять, почему при вводе четных чисел (4 или 6) выдается сообщение, что число простое, хотя из-за отсутствия остатка от деления счетчик (result) увеличил значение на 1 и должно было выдаться сообщение, что число сложное.
Листинг программы
  1. import java.util.Scanner;
  2. public class Lessen_2_Loop {
  3. public static void main(String[] args) {
  4. int a;
  5. int m[];
  6. int result=0;
  7. Scanner scn;
  8. System.out.println("Введите число");
  9. scn=new Scanner(System.in);
  10. a=scn.nextInt();
  11. m=new int[a];
  12. System.out.print("Проверяемые на деление без остатка числа: ");
  13. for (int i=2; i<a; i++){
  14. m[i]=i;
  15. System.out.print(m[i]+" ");}
  16. System.out.println();
  17. if(a<=7 && a>1){
  18. for (int i=2; i<a; i++){
  19. if (a%m[i]==0){
  20. result=result++;}
  21. }
  22. if (result!=0) {System.out.println("Число сложное");}
  23. else System.out.println("Число простое");}
  24. }}

Введите число 4 Проверяемые на деление без остатка числа: 2 3 Число простое

Решение задачи: «Условные операторы для определения простых чисел»

textual
Листинг программы
  1. import java.util.Scanner;
  2. public class Lessen_2_Loop {
  3.     public static void main(String[] args) {
  4.         int a;
  5.         double b;
  6.         int m[];
  7.         int result=0;
  8.         String x;
  9.         Scanner scn;
  10.             System.out.println("Введите число");
  11.                 scn=new Scanner(System.in);
  12.                 a=scn.nextInt();
  13.                 m=new int[a];
  14.             System.out.print("Проверяемые на деление без остатка числа: ");    
  15.             b=Math.sqrt(a);
  16.             for (int i=2; i<b; i++){
  17.                 m[i]=i;
  18.                     System.out.print(m[i]+" ");}
  19.              System.out.println(); 
  20.                 for (int i=2; i<b; i++){
  21.                     if (a%m[i]==0){
  22.                         result=result+1;}
  23.                 }
  24.            x=(result!=0)? " - число сложное": " - число простое";
  25.            System.out.print(a +" "+ x);
  26.         }}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.167 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут