Найти все делители числа можно следующим образом :
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(«Ошибка. Введено не число»);
}
}
