Непейвода Н.Н. Программирование. Раздел 2

Непейвода Н.Н. Программирование. Страница 245

В Рпте_ЫитЬегз_3 курсивом отмечены строки, добавленные для организа­ции цикла, а знаками //! выделены изменения и добавления, сделанные для организации переиспользования.

Может показаться неочевидной модификация инициализации массива, т. е. присваивание значения его третьему элементу, и, соответственно, опе­ратор к = 3; Это сделано из следующих соображений. Просмотр потока лишь нечетных чисел делает избыточной проверку делимости на два. В то же вре­мя надо позаботиться о том, чтобы начало просмотра новых нечетных чисел было корректным как на первой итерации цикла, так и в дальнейшем. Ины­ми словами, требуется, чтобы оператор і = а[к]; приводил к нечетному г в обоих случаях. Присваивать к единицу нельзя — на нее делятся все чис­ла, а следовательно, целесообразно выбрать минимальное простое нечетное число, большее единицы, т. е. три.

Если требуется пользоваться результатами вычислений при разных за­пусках программы (или в других программах) и при этом заменять вычис­ления извлечениями значений, то естественным будет сохранение резуль­татов работы программы в файле (и считывание предыдущих результатов из файла). Изменения, требующиеся в этом случае, показаны в следующей программе.

int а[1 ООО]; FILE *f; int main(void) {/ = fopen ("prime, txt", "r "); fscanf(f, "%i: ",&k); for (i=l;i<=k;i++)

fscanf(f, "%i",&a[i]); fс lose (J);

//

IIФрагмент, ответственный за // инициализацию массива а

// //

printffWrite N:M); scanf ("%i",&N); if (N<=0)

printff'lf N <= 0 then there is no prime numbers\n"); else {

if (k>=N) i = a[N]; else { i=a[k];

while (k<N) {

i+=2;

for (j=2,Prime=true; Prime &&a[]']<=sqrt(i); j++) Prime = i%a[j]; if (Prime) { a[++k]=i; printf("%i i);

Новости

  • 1
  • 2
Prev Next

Ракета "Ангара-А5В" в ближайшее десятилетие не полетит

24.01.2016

Ракета &quot;Ангара-А5В&quot; в ближайшее десятилетие не полетит

Роскосмос не планирует в течение ближайшего десятилетия осуществлять пуск тяжёлой ракеты-носителя А...

Ученые РФ опровергли выводы исследований о вреде ГМО

24.01.2016

Ученые РФ опровергли выводы исследований о вреде ГМО

Исследователи из Института проблем передачи информации (ИППИ РАН) проанализировали несколько самых п...

Летающие "Крокодилы"

24.01.2016

Летающие &quot;Крокодилы&quot;

20 удивительных фактов о боевом вертолете Ми-24.Этот вертолет стал таким же узнаваемым символом сове...

В Аргентине описали новый вид динозавра-гиганта

24.01.2016

О ранее неизвестном виде динозавра, относящемуся к инфраотряду зауроподов, рассказали аргентинские п...

Реклама