Определить количество простых чисел в этой последовательности - C (СИ)
Формулировка задачи:
Дан одномерный целочисленный массив. Определить количество простых чисел в этой последовательности.
подскажите, пожалуйста(
чем заменить вопросы не знаю, подскажите(
#include "stdafx.h"
bool simple(int n)
{
if(n <= 1)
return 0;
for(int i = 2; i <= n/2; i++)
if(n % i == 0)
return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
int A [100];
int k=0;
// ?????
k++;
printf("%k",k);
return 0;
}
и вообще сомневаюсь в правильности задания одномерного массива
Решение задачи: «Определить количество простых чисел в этой последовательности»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int is_prime(int n) {
int i;
for ( i = 2; i < n / 2 + 1; ++i )
if ( ! ( n % i ) )
return 0;
return 1;
}
#define ELEMENTS_COUNT (100)
#define TOP_VALUE (1000)
int main(void) {
int array[ELEMENTS_COUNT], i, primesCount;
srand(time(NULL));
for ( i = 0; i < ELEMENTS_COUNT; ++i )
array[i] = rand() % TOP_VALUE;
for ( primesCount = i = 0; i < ELEMENTS_COUNT; ++i )
if ( is_prime(array[i]) )
++primesCount;
printf("In array of %d random integers before %d found %d prime numbers.\n", ELEMENTS_COUNT, TOP_VALUE, primesCount);
return 0;
}
Объяснение кода листинга программы
В данном коде определен прототип функции is_prime(int n), которая проверяет, является ли число n простым. Затем, в функции main(), создается массив из 100 случайных целых чисел в диапазоне от 1 до 1000. Далее, в цикле перебираются все числа в массиве и проверяется, является ли каждое из них простым с помощью функции is_prime(). Если число простое, к переменной primesCount прибавляется единица. В конце программы выводится сообщение, содержащее количество простых чисел в массиве.