Как найти все делители числа java

Найти все делители числа можно следующим образом :

        int number = 50;
        Set<Integer> divisors = new TreeSet<>();

        divisors.add(1);
        divisors.add(-1);
        for(int i = 2; i <= number / 2; i++) {
            if(number % i == 0) {
                divisors.add(i);
                divisors.add(-i);
            }
        }
        divisors.add(number);
        divisors.add(-number);

        System.out.println(divisors); 
// => [-50, -25, -10, -5, -2, -1, 1, 2, 5, 10, 25, 50]

Following is the Java program which prints all the divisors of a given number.

Program

import java.util.Scanner;

public class DivisorsOfNaturalNumber {
   public static void main(String args[]) {
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter required number :");
      int num = sc.nextInt();
     
      for(int i = 1; i<num; i++) {
         if(num % i == 0) {
            System.out.println(" "+i);
         }
      }
   }
}

Output

Enter required number :
200
1
2
4
5
8
10
20
25
40
50
100

Здравствуйте! Подскажите по коду?

Выведите на экран все положительные делители
натурального числа и подсчитать количество делителей,
введённого пользователем с клавиатуры.

Код вроде работает компилировал запускался.

1)Правильно ли составлен код на положительные делители?

2)Когда компилируется код выводит следующее:

Вводите ваше натуральное число — 6 //ввел число

Число 3 делится на — 1 3 6 Количество делителей — 3

Как можно сделать, чтобы выводило так:

Вводите ваше натуральное число — 6 //ввел число

Число 3 делится на — 1 3 6

Количество делителей — 3

Как можно сделать, чтобы делители выводились в обратном порядке:

Вводите ваше натуральное число — 6 //ввел число

Число 3 делится на — 6 3 1

Количество делителей — 3

3) Как можно описать код, на ошибку, если пользователь ввел отрицательное число?

4) Как можно описать код, что на ноль делить нельзя, если пользователь ввел 0?

public class Test {
    public static void main(String args[]){
        int n;
         int count = 0;
       System.out.print("Вводите ваше натуральное число - ");
        Scanner sr = new Scanner(System.in);
         n = sr.nextInt();
          System.out.print("Число " + n + " делится на - " );
        for(int i = 1; i <= n; i++){
           if ((n % i) == 0){
             count++;
              System.out.print(i + " ");
            }
        }
      System.out.println("Количество делителей - " + count);
    }
}

Делителем натурального числа n называют число, на которое n делится без остатка.

Например:

делителем числа 9 является число 3, 9 : 3 = 3;
делителем числа 9 не является число 4, 9 : 4 = 2 + 1/4;

Главный класс:

package Task_18;
 
import java.util.Scanner;
 
// 16) Вывести все делители числа
public class Task_18
{
 public static void main(String[] args)
 {
 Scanner sc = new Scanner(System.in);
 System.out.println("Введите число: ");
 int n = sc.nextInt();
 sc.close();
 System.out.println(Class_Task_18.metod(n));
 }
}

Класс в котором реализован метод:

package Task_18;
 
public class Class_Task_18
{
public static String metod(int n)
{
 String res = "";
 for (int i = 1; i <= n; i++)
 {
 if(0 == (n % i))
 res += i+ ",";
 }
 return res;
}
}

JUnit Tests:

package Task_18;
 
import static org.junit.Assert.*;
 
import org.junit.Test;
 
public class Tests
{
 
 @Test
 public void test_1()
 {
 assertEquals("1,", Class_Task_18.metod(1)); 
 }
 @Test
 public void test_99()
 {
 assertEquals("1,3,9,11,33,99,", Class_Task_18.metod(99)); 
 }
 @Test
 public void test_100()
 {
 assertEquals("1,2,4,5,10,20,25,50,100,", Class_Task_18.metod(100)); 
 }
 
 @Test
 public void test_1000()
 {
 assertEquals("1,2,4,5,8,10,20,25,40,50,100,125,200,250,500,1000,", Class_Task_18.metod(1000)); 
 }
}

Выведите на экран все положительные делители натурального числа, введённого пользователем с клавиатуры.

import  java.util.*;

public class Zadachi{

    public static void main(String[] args){

        //Создадим переменную, в которую занесем значение числа, заданного пользователем

        int a;

        Scanner scn=new Scanner(System.in);

        System.out.println(«Введите натуральное число»);

        //Проверка, является ли введенный знак натуральным числом

        if(scn.hasNextInt()){

            //Если проверка пройдена, перемменой а присваивается значение введенного числа

            a=scn.nextInt();

            //Из условия задачи нам необходимо найти все делители числа, заданного пользователем. Зная, что наибольший делитель — это само число, а наименьший — 1, составим цикл: если при деление по модулю заданного числа на число из потенциальных делителей результат равен 0, такое число является делителем заданного числа, которое и выводим на экран

            System.out.print(«Делителями числа «+a+» являются «);

            for(int i=a;i>0;i—){

                int b=a%i;

                if(b==0)

                    System.out.print(i+» «);

            }

        }

        else System.out.println(«Ошибка. Введено не число»);

    }

}

Понравилась статья? Поделить с друзьями:
  • Как найти количество генотипов
  • Как найти удельную поверхность частиц
  • Как найти людей в доте
  • Как исправить ошибки в балансе за прошлые периоды
  • Как найти ударение в слове земля