JohnC
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата: Для проверки числа мы должны проверить если он делится без остатка на какое либо число от 2 и до его самого. Если делиться значит число это не простое. | Да, но тут еще один момент: простое число не должно делится ни на одно другое кроме самого себя и единицы без остатка. Так что без массива, похоже, никак не обойтись. Добавлено vndovr Спасибо за оригинальное решение. Я тут твой код немного преобразовал под язык Си и вот что у меня получилось: #include<stdio.h> void main () { int n,i,j; char c[32767]; clrscr (); printf("Вывод всех простых чисел, меньшие N\n"); printf("Введите целое положительное число N:"); scanf("%*[^0-9]%d%*[^\n]",&n); memset(c, 1, sizeof(c)); for (i=2; i<=n/2; i++) if (c[i-1]) for (j=i*2; j<=n; j+=i) c[j-1] = 0; j=1; for (i=1; i<n; i++) { if (c[i]) { if (j%23==0) getch (); printf("%d\n",i+1); j++; } } getch (); } Но не ужели в языке СИ никак нельзя создать массив динамически, а то такой большой массив с запасом задавать как-то криво? |