Тема. Область видимості змінної. «Виведення чисел, що діляться без залишку на декілька дільників»
ЗАВДАННЯ ДЛЯ ВИКОНАННЯ
Дано: два натуральних числа a та b.
Знайти: Для кожного з чисел a, a+1, a+2,..., b знайти всі дільники, підрахувати їх кількість та знайти їх суму.
Знайти: Для кожного з чисел a, a+1, a+2,..., b знайти всі дільники, підрахувати їх кількість та знайти їх суму.
ЗМІННІ:
Вхідні:
a – ліва границя інтервалу (цілого типу int)
b – права границя інтервалу (цілого типу int)
a – ліва границя інтервалу (цілого типу int)
b – права границя інтервалу (цілого типу int)
Вихідні:
n – натуральне число з інтервалу [a, b] та параметр зовнішнього циклу (цілого типу int)
i – дільники числа n та параметр внутрішнього циклу (цілого типу int)
k – кількість дільників числа n (цілого типу int)
s – сума дільників числа n (цілого типу int).
2. Для кожного числа n із цього інтервалу ми повинні повністю виконати попередній алгоритм, починаючи з пункту 2.
n – натуральне число з інтервалу [a, b] та параметр зовнішнього циклу (цілого типу int)
i – дільники числа n та параметр внутрішнього циклу (цілого типу int)
k – кількість дільників числа n (цілого типу int)
s – сума дільників числа n (цілого типу int).
АЛГОРИТМ
1. Спочатку вводимо натуральні числа a та b, що є границями інтервалу.2. Для кожного числа n із цього інтервалу ми повинні повністю виконати попередній алгоритм, починаючи з пункту 2.
Тому у нас будуть вкладені цикли:
- виводить ці числа на екран;
- для кожного числа n встановлює початкове значення для кількості та суми дільників s=0; k=0. Це обов’язково потрібно зробити у зовнішньому циклі, але перед внутрішнім.
- підраховує цей дільник оператором k=k+1;
- накопичує цей дільник у суму оператором s=s+i.
- зовнішній цикл:
- виводить ці числа на екран;
- для кожного числа 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,6,7,8 знаходимо дільники, їх кількість та суму.
Перед дільниками виводимо на екран і саме число