Назад Зміст Вперед

Лабораторна робота: «Виведення чисел, що діляться без залишку на декілька дільників»

Тема. Область видимості змінної. «Виведення чисел, що діляться без залишку на декілька дільників»


ЗАВДАННЯ ДЛЯ ВИКОНАННЯ
Дано: два натуральних числа a та b.
Знайти: Для кожного з чисел a, a+1, a+2,..., b знайти всі дільники, підрахувати їх кількість та знайти їх суму.
ЗМІННІ:
Вхідні:
a – ліва границя інтервалу (цілого типу int)
b – права границя інтервалу (цілого типу int)

Вихідні:
n – натуральне число з інтервалу [a, b] та параметр зовнішнього циклу (цілого типу int)
i – дільники числа n та параметр внутрішнього циклу (цілого типу int)
k – кількість дільників числа n (цілого типу int)
s – сума дільників числа n (цілого типу int).

АЛГОРИТМ
1. Спочатку вводимо натуральні числа a та b, що є границями інтервалу.
2. Для кожного числа n із цього інтервалу ми повинні повністю виконати попередній алгоритм, починаючи з пункту 2.
Тому у нас будуть вкладені цикли:
  • зовнішній цикл: 
- перебирає числа n з інтервалу [a, b];
- виводить ці числа на екран;
- для кожного числа n встановлює початкове значення для кількості та суми дільників s=0; k=0. Це обов’язково потрібно зробити у зовнішньому циклі, але перед внутрішнім.
  • внутрішній цикл для кожного числа n знаходить дільники та:
- виводить на екран цей дільник;
- підраховує цей дільник оператором k=k+1;
- накопичує цей дільник у суму оператором s=s+i.
3. Коли внутрішній цикл закінчиться, виводимо знайдені значення кількості та суми для даного числа n на екран та переходимо на наступний виток зовнішнього циклу для обробки наступного числа.

ПРИКЛАД ПРОГРАМИ

public static void main(String[] args) {
//Виведення чисел, що діляться без залишку на декілька дільників:
//Для кожного з чисел a, a+1, a+2,..., b 
//знайти всі дільники, підрахувати їх кількість та знайти їх суму.
  
  Scanner a = new Scanner(System.in); //створення об'єкту класу Scanner - a
  Scanner b = new Scanner(System.in); //створення об'єкту класу Scanner - b
        int x = 0, y=0, n=0, k=0, s=0, i=0;
        System.out.println("Введіть a: ");
        System.out.println("Введіть b: ");
        if(a.hasNextInt() && b.hasNextInt()) { //повертає істина, якщо введено ціле число, зчитує ціле число і записує в змінну
          x = a.nextInt();   
          y = b.nextInt(); 
          for(n=x; n<=y; n++){
           System.out.println();
           k=0; s=0;
           System.out.print("дільники числа "+n+": ");
             for (i=1; i<=y; i++ )
             if (n%i == 0) {
              k=k+1;
                 s=s+i;
              System.out.print(i+" ");
             } 
           System.out.println();
           System.out.print("кількість дільників числа "+n+": "+"k= "+k+"; ");
           System.out.println();
           System.out.print("сума дільників числа "+n+": "+"s= "+s+"; ");
           System.out.println();
          } 
           }else {
          System.out.println("Ви ввели не ціле число a,b");
       }
РЕЗУЛЬТАТ


Введіть a: 
Введіть b: 
5
8

дільники числа 5: 1 5 
кількість дільників числа 5: k= 2; 
сума дільників числа 5: s= 6; 

дільники числа 6: 1 2 3 6 
кількість дільників числа 6: k= 4; 
сума дільників числа 6: s= 12; 

дільники числа 7: 1 7 
кількість дільників числа 7: k= 2; 
сума дільників числа 7: s= 8; 

дільники числа 8: 1 2 4 8 
кількість дільників числа 8: k= 4; 
сума дільників числа 8: s= 15; 

Пояснення:
Вводимо числа 5 та 8.
Для кожного з чисел 5,6,7,8 знаходимо дільники, їх кількість та суму.
Перед дільниками виводимо на екран і саме число
.