|
Документ взят из кэша поисковой машины. Адрес
оригинального документа
: http://num-anal.srcc.msu.ru/lib_na/cat/pa_htm_c/pa12i_c.htm
Дата изменения: Thu Nov 26 11:10:46 2015 Дата индексирования: Sun Apr 10 02:18:46 2016 Кодировка: Windows-1251 |
|
Текст подпрограммы и версий pa12i_c.zip |
Тексты тестовых примеров tpa12i_c.zip |
Вычисление последовательности простых чисел.
Подпрограмма pa12i_c вычисляет последовательность простых чисел (включая единицу), не превосходящих заданного натурального N, используя алглоритм, имеющий название "решето Эратосфена". Полученная последовательность помещается в массиве IP, длина которого
не больше [ 1.6N / lnN + 1 ] , если N ≤ 200 , или не больше [ N / (lnN-2) + 1 ] , если N > 200.
Символ [ ] означает целую часть числа.
int pa12i_c(integer *n, integer *ip)
Параметры
| n - | заданное значение натурального числа, для которого ищутся простые числа, не превосходящие его (тип: целый); |
| ip - |
целый одномерный массив длины [1.6n/lnn + 1], если
n ≤ 200, или длины [n/(lnn - 2) + 1], если n > 200, в котором помещается вычисленная последовательность простых чисел. |
Версии: нет
Вызываемые подпрограммы: нет
Замечания по использованию: нет
int main(void)
{
/* Local variables */
extern int pa12i_c(int *, int *);
static int n, ip[35], i;
n = 100;
pa12i_c(&n, ip);
for (i = 0; i <= 20; i += 10) {
printf("\n %5i %5i %5i %5i %5i %5i %5i %5i %5i %5i \n",
ip[i], ip[i+1], ip[i+2], ip[i+3], ip[i+4],
ip[i+5], ip[i+6], ip[i+7], ip[i+8], ip[i+9]);
}
printf("\n %5i %5i %5i %5i %5i \n",
ip[30], ip[31], ip[32], ip[33], ip[34]);
return 0;
} /* main */
Результаты:
ip = 1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53,
59, 61, 67, 71, 73, 79, 83, 89, 97