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

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

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

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

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

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

textual
Листинг программы
import java.util.Scanner;
public class Lessen_2_Loop {
    public static void main(String[] args) {
        int a;
        double b;
        int m[];
        int result=0;
        String x;
        Scanner scn;
            System.out.println("Введите число");
                scn=new Scanner(System.in);
                a=scn.nextInt();
                m=new int[a];
            System.out.print("Проверяемые на деление без остатка числа: ");    
            b=Math.sqrt(a);
            for (int i=2; i<b; i++){
                m[i]=i;
                    System.out.print(m[i]+" ");}
             System.out.println();  
                for (int i=2; i<b; i++){
                    if (a%m[i]==0){
                        result=result+1;}
                }
           x=(result!=0)? " - число сложное": " - число простое";
           System.out.print(a +" "+ x);
        }}

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

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