Посчитать количество простых чисел

Задача

Вводятся десять натуральных чисел больше 2. Посчитать, сколько среди них простых чисел.

Пояснение к задаче и алгоритм решения

Простым называется натуральное число (кроме 1), делителями которого являются только оно само и 1. Например, число 5 - простое, т.к. его можно нацело разделить только на 5 и 1, а число 6 - сложное, т.к. помимо 6 и 1 делится на 2 и 3.

  1. Предположим изначально, что все десять чисел простые. Присвоим счетчику простых чисел значение 10.
  2. Каждое вводимое число надо проверить на делимость на все натуральные числа начиная с двойки и до квадратного корня до него.
  3. Если хотя бы один из делителей делит число нацело, значит число сложное и надо уменьшить счетчик простых чисел.
  4. В конце программы вывести значение счетчика простых чисел. Оно будет уменьшено на количество введенных сложных чисел, следовательно, будет показывать количество введенных простых чисел.

Исходный код на языке программирования Pascal

var
    count, i: byte;
    n, j: word;
begin
    count := 10;
    for i:=1 to 10 do begin
        read(n);
        for j:=2 to trunc(sqrt(n))+1 do
            if n mod j = 0 then begin
                count := count - 1;
                break;
            end;
    end;
    writeln('Простых чисел ', count);
end.

Пример(ы) выполнения программы на языке Pascal

 15 16 17 18 19 20
21 22 23 24 25
Простых чисел 3

Исходный код на языке программирования C

#include <stdio.h>
#include <math.h>
 
main() {
    unsigned int n, count, i, j;
    count = 10;
    for (i=0; i<10; i++) {
        scanf("%d", &n);
        for (j=2; j<= ((int)sqrt(n))+1; j++)
            if (n%j == 0) {
                count -= 1;
                break;
            }
    }
    printf("Простых чисел: %d\n", count);
}

Пример(ы) выполнения программы на языке C

5
6
7
8
9
10
11
12
13
14
Простых чисел: 4

Особенности решения на языке программирования C

При gcc использовать ключ -lm.

Исходный код на языке программирования Python

from math import sqrt
 
count = 10
for i in range(10):
    n = int(input())
    for j in range(2, int(sqrt(n))+1):
        if n%j == 0:
            count -= 1
            break
 
print(count)

Пример(ы) выполнения программы на языке Python

13
4
12
30
18
11
23
100
113
997
Количество простых чисел: 5

Исходный код на языке программирования КуМир

алг простые числа
нач
  цел count, i, n, j
  count := 10;
  нц для i от 1 до 10
    ввод n
    нц для j от 2 до int(sqrt(n))+1
      если mod(n,j) = 0 то
        count := count - 1
        выход
      все
    кц
  кц
  вывод "Простых чисел ", count
кон

Пример(ы) выполнения программы на языке КуМир

78
113
101
107
45
110
118
121
201
501
Простых чисел 3

Исходный код на языке программирования Basic

c = 10
for i=1 to 10
        input n
        for j=2 to (int(sqrt(n))+1)
                if n%j = 0  then
                        c = c - 1
                        goto go
                endif  
        next j
        go:
next i
print "Простых чисел: " + c

Пример(ы) выполнения программы на языке Basic

100
101
102
103
104
105
106
107
108
109
Простых чисел: 4

Тема

Вложенные циклы

Уровень сложности

Средний

Дата публикации