Вывести простые числа из последовательности - C (СИ)
Формулировка задачи:
Необходимо создать последовательность из n чисел, найти в ней количество простых чисел и вывести его на печать или напечатать простые числа отдельной последовательностью. Очень прошу объяснить оба варианта.
Вот то до чего дошёл я:
Где здесь ошибка(и)?
Заранее спасибо.
#include <stdio.h> main() { int i,s,n,k,r; //s- кол-во простых чисел; k - кол-во делителей. s=0; srand(time(NULL)); for(i=0;i<15;i++) { n=rand()%(11-3)+3; printf("%3d",n); } r=n/2; for(i=2;i<r;i++) { if (n%i==0) k++; if (k==0) s++; } printf ("\n s=%d \n",s); } getch(); return 0; }
Решение задачи: «Вывести простые числа из последовательности»
textual
Листинг программы
#include <iostream> #include <conio.h> #include <math.h> int main() { int number = 0; int msv[10]; for(int i=0; i < 10; i++) { msv[i] = rand() % (11 - 3) + 3; printf("%d ", msv[i]); } printf("\nProstie chisla:\n"); for (int i=0; i < 10; i++) { for (int j=2; j <= sqrt((double)msv[i]); j++) { if (msv[i]%j == 0 && msv[i] != j) { msv[i] = 0; break; } } if (msv[i] != 0) { number++; printf("%d ", msv[i]); } } printf("\nKolichestvo prostix chisel: %d\n",number); getch(); return 0; }
Объяснение кода листинга программы
В этом коде выполняется следующая последовательность действий:
- Инициализируются переменные:
number
инициализируется значением 0;- массив
msv
инициализируется значениями, полученными с помощью функцииrand()
.
- С помощью цикла
for
выводятся значения массиваmsv
на экран через пробел. - Выводится сообщение
Prostie chisla:
и начинается циклfor
, который проверяет все числа из массиваmsv
на простоту. Для этого используется вложенный циклfor
, который проверяет делители от 2 до квадратного корня из текущего числа. Если число делится на какое-то из этих значений без остатка и не равно этому значению, оно считается простым и записывается в массивmsv
равным 0. - Если число не равно 0, увеличивается значение переменной
number
и число выводится на экран через пробел. - После окончания второго цикла выводится сообщение
Kolichestvo prostix chisel:
и значение переменнойnumber
. - В конце программы вызывается функция
getch()
, которая ожидает нажатия клавиши, и функцияreturn 0;
, которая завершает выполнение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д