Условные операторы для определения простых чисел - 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);
- }}
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д