Число i є дільником натурального числа n, якщо n mod i=0.
У кожного натурального числа n обов’язково є два дільники: 1 та n.
Всі інші дільники натурального числа n (якщо вини є), знаходяться в інтервалі [2, n div 2].
Натуральне число називається простим, якщо у нього немає дільників в інтервалі [2, n div 2].
Щоб знайти всі дільники числа n, потрібно перевірити всі числа i з інтервалу [1, n] на умову n mod i=0. Тобто це буде такий цикл:
for i:=1 to n do if n mod i=0 then...
Щоб перевірити, чи є число n простим, достатньо перевірити на цю умову всі числа з інтервалу [2, n div 2]. Тобто це буде такий цикл:
for i:=2 to n div 2 do if n mod i=0 then...
Дано натуральне число n. Знайти всі його дільники, їх кількість та суму.
Дано: натуральне число n.
Знайти: Надрукувати його дільники, підрахувати їх кількість та знайти їх суму.
Ввід | Відповідь | Пояснення |
---|---|---|
12 | 1 2 3 4 6 12 6 28 | Вводимо число 12. Його дільники: 1 2 3 4 6 12. Кількість дільників –6. Сума дільників – 28. |
Вхідні:
n – натуральне число (цілого типу word, бо число натуральне)
Вихідні:
i – дільники та параметр циклу (цілого типу word)
k – кількість дільників (цілого типу word)
s – сума дільників (цілого типу word).
var n,k,s,i:word; begin read(n); k:=0;s:=0; for i:=1 to n do if n mod i=0 then begin write(i,' '); k:=k+1; s:=s+i; end; writeln(k,' ',s); end. |
Для кожного натурального числа з інтервалу [A, B] знайдіть всі дільники, їх кількість та суму.
Дано: два натуральних числа A та B.
Знайти: Для кожного з чисел A, A+1, A+2,..., B знайти всі дільники, підрахувати їх кількість та знайти їх суму.
Ввід | Відповідь | Пояснення |
---|---|---|
a=10 b=14 |
дільники числа 10: 1 2 5 10 k=4 s=18 дільники числа 11: 1 11 k=2 s=12 дільники числа 12: 1 2 3 4 6 12 k=6 s=28 дільники числа 13: 1 13 k=2 s=14 дільники числа 14: 1 2 7 14 k=4 s=24 | Вводимо числа 10 та 14. Для кожного з чисел 10, 11, 12, 13, 14, знаходимо дільники, їх кількість та суму. Перед дільниками виводимо на екран і само число |
Вхідні:
A – ліва границя інтервалу (цілого типу word, бо числа натуральні)
B – права границя інтервалу (цілого типу word, бо числа натуральні)
Вихідні:
n – натуральне число з інтервалу [A, B] та параметр зовнішнього циклу (цілого типу word, бо число натуральне)
i – дільники числа n та параметр внутрішнього циклу (цілого типу word)
k – кількість дільників числа n (цілого типу word)
s – сума дільників числа n (цілого типу word).
var a,b,n,i,k,s:word; begin write(a=');read(a); write('b=');read(b); for n:=a to b do begin write(дільники числа ',n,': '); s:=0;k:=0; for i:=1 to n do if n mod i=0 then begin write(i,' '); k:=k+1; s:=s+i; end; writeln(' k=',k,' s=',s); end; end. |
Для кожного з чисел з інтервалу від 300 до 400 знайти суму дільників. Вивести на екран числа, у яких сума дільників кратна 10, а також саму суму дільників.
Знайти: Для кожного з чисел 300, 301, 302, ..., 400 додати всі дільники, і, якщо сума буде кратна 10, то вивести на екран число та знайдену суму.
Відповідь | Пояснення |
---|---|
n=304 s=620 n=312 s=840
n=316 s=560 n=319 s=360 n=323 s=360 n=327 s=440 n=328 s=630 n=342 s=780 n=343 s=400 n=344 s=660 n=348 s=840 n=349 s=350 n=351 s=560 n=354 s=720 n=356 s=630 n=358 s=540 n=359 s=360 n=360 s=1170 n=376 s=720 n=377 s=420 n=378 s=960 n=379 s=380 n=380 s=840 n=384 s=1020 n=389 s=390 n=395 s=480 n=398 s=600 n=399 s=640 | В програму нічого не вводиться. Числа у відповіді мають коментарі: спочатку виводиться число n, а потім сума його дільників s. |
Вхідних даних немає
Вихідні:
n – натуральне число з інтервалу [300,400] та параметр зовнішнього циклу (цілого типу word, бо число натуральне)
i – дільники числа n та параметр внутрішнього циклу (цілого типу word)
s – сума дільників числа n (цілого типу word).
var n,i,s:word; begin for n:=300 to 400 do begin s:=0; for i:=1 to n do if n mod i=0 then s:=s+i; if s mod 10=0 then write(' n=',n,' s=',s); end; end. |
Дано натуральне число n. Визначити, чи є воно простим?
Дано: натуральне число n.
Знайти: З’ясувати, чи є у числа дільники у інтервалі [2, n div 2].
Ввід | Відповідь | Пояснення |
---|---|---|
12 | No | У числа 12 в інтервалі [2,6] є дільники: 2, 3, 4, 6. Тому число не є простим. |
17 | Yes | У числа 17 в інтервалі [2,8] немає дільників. Тому число є простим. |
Вхідні:
n – натуральне число (цілого типу word, бо число натуральне)
Вихідні:
p – ознака наявності дільників (логічного типу, p=false немає дільників, p=true є дільники )
Проміжні:
i – дільники та параметр циклу (цілого типу word)
var n,i: word; P:boolean; begin read(n);p:=false; for i:=2 to n div 2 do if n mod i=0 then p:=true; if not p then writeln('yes') else writeln('no'); end. |
Знайдіть в інтервалі [A, B] всі прості числа.
Дано: два натуральних числа A та B.
Знайти: Для кожного з чисел A, A+1, A+2,..., B з’ясувати, чи є воно простим. Якщо число просте, то вивести його на екран.
Ввід | Відповідь | Пояснення |
---|---|---|
10 14 | 11 13 |
Вводимо числа 10 та 14. Для кожного з чисел 10, 11, 12, 13, 14, шукаємо дільники в інтервалі [2,n div 2]. У числа 10 в інтервалі [2,5] є дільники 2 та 5, тобто число не просте. У числа 11 в інтервалі [2,5] немає дільників, тобто число просте і тому виводиться на екран. У числа 12 в інтервалі [2,6] є дільники 2, 3, 4 та 6, тобто число не просте. У числа 13 в інтервалі [2,6] немає дільників, тобто число просте і тому виводиться на екран. У числа 14 в інтервалі [2,7] є дільники 2 та 7, тобто число не просте. |
Вхідні:
A – ліва границя інтервалу (цілого типу word, бо числа натуральні)
B – права границя інтервалу (цілого типу word, бо числа натуральні)
Вихідні:
p – ознака наявності дільників (логічного типу, p=false немає дільників, p=true є дільники )
Проміжні:
n – натуральне число з інтервалу [A, B] та параметр зовнішнього циклу (цілого типу word, бо число натуральне)
i – дільники числа n та параметр внутрішнього циклу (цілого типу word)
var n,i,a,b: word; P:boolean; begin read(a,b); for n:=a to b do begin p:=false; for i:=2 to n div 2 do if n mod i=0 then p:=true; if not p then write(n,' '); end; end. |