Завдання № 18. Вивести на екран всі прості числа до заданого » Pascal - основи програмування

Основи програмування на мові Pascal

 

Спонсори

Завдання № 18. Вивести на екран всі прості числа до заданого

Завдання № 18. Вивести на екран всі прості числа до заданого
Формулювання. Дано натуральне число. Вивести на екран всі прості числа до заданого включно.
Рішення. У вирішенні даної задачі використовується рішення попередньої.
    Нам необхідно провести тест простоти числа, який був описаний у вирішенні перед-дущей завдання наступним кодом (позначимо його як код 1):

count: = 0;
for i: = 1 to n do begin
  if n mod i = 0 then inc (count)
end;
writeln (count = 2);

    Тут n - проверяемое на простоту число. Нагадаємо, що даний фрагмент коду в циклі перевіряє, чи ділиться n на кожне i в відрізку від 1 до самого n, і якщо n ділиться на i, то увеличи-кість лічильник count на 1. Коли цикл закінчується, на екран виводиться результат перевірки ра -венства лічильника числа 2.
    У нашому ж випадку потрібно провести перевірку на простоту всіх натуральних чисел від 1 до заданого числа (позначимо його як n). Отже, ми повинні помістити код 1 в цикл по всіх k від 1 до n. Також у зв'язку з цим необхідно замінити в коді 1 ідентифікатор n на k, оскільки в даному рішенні перевіряються на простоту всі числа k. Крім того, тепер замість виведення відповіді про підтвердження / спростування простоти k необхідно вивести саме це число у випадку простоти:
if count = 2 then write (k, '');
Узагальнюючи вищесказане, наведемо алгоритм природною мовою:
1) Введення n;
2) Запуск циклу, при якому k змінюється від 1 до n. У циклі:

  1. Обнулення змінної count;
  2. Запуск циклу, при якому i змінюється від 1 до k. У циклі:
    a. Якщо k ділиться на i, то збільшуємо значення змінної count на 1;
  3. Якщо count = 2, виводимо на екран число k і символ пропуску.

Код:


  1. program PrimesToN;
  2. var
  3. i, k, n, count: word;
  4. begin
  5. readln(n);
  6. for k := 1 to n do begin
  7.   count := 0;
  8.   for i := 1 to k do begin
  9.   if k mod i = 0 then inc(count)
  10. end;
  11. if count = 2 then write(k, ' ')
  12. end
  13. end.

0019.-FirstNPrimes.rar [706 b] (cкачувань: 22)

скачать dle 10.4фильмы бесплатно Наступна сторінка » Завдання № 19. Вивести на екран перших n... Попередня сторінка » Завдання № 17. Перевірити, чи є задане н...