Помогите решить задачу по программированию, пожалуйста
| |
devil-hunter | Дата: Понедельник, 24 Октября 2011, 22:49 | Сообщение # 1 |
был не раз
Сейчас нет на сайте
| Простым называют число, которое имеет только 2 делителя - 1 и само себя. Среди простых чисел только самое маленькое число 2 - чётное. Возьмём возрастающёю последовательность состоящую из нечётных простых чисел 3,5,7,11,13,17,19,23,... и будем получать средние арифметические чисел стоящих в ней рядом. В результате получим последовательность 4, 6 , 9, 12, 15, 18, 21, 26, 30 ... нужно вывести значение N-го члена последовательности, состоящей из средних арифметических
помогите её решить, плиз!!! я код написал, НО он пишет "несоответствие типов" приведите пожалуйста правильное решение,буду премного благодарен
Сообщение отредактировал devil-hunter - Понедельник, 24 Октября 2011, 22:53 |
|
| |
anton-gar | Дата: Понедельник, 24 Октября 2011, 23:22 | Сообщение # 2 |
WEBmaster
Сейчас нет на сайте
| Code var c,i,j,l:integer; begin cls; for i:=3 to 999 do begin j:=2; l:=round(sqrt(i)); while (i mod j <> 0) and (j <= l) do begin inc(j); end; if (j > l) then begin write((c+i)/2,' '); c:=i; end; end; end.
Уже позднова-то, поэтому, возможно, более рентабельный способ в голову не пришёл. Всё работает, если что писал в ABC.
Сообщение отредактировал anton-gar - Вторник, 25 Октября 2011, 00:34 |
|
| |
devil-hunter | Дата: Понедельник, 24 Октября 2011, 23:42 | Сообщение # 3 |
был не раз
Сейчас нет на сайте
| у меня пишет "несоответствие типов" (((
|
|
| | |
devil-hunter | Дата: Понедельник, 24 Октября 2011, 23:59 | Сообщение # 5 |
был не раз
Сейчас нет на сайте
| dos box(ну это эмулятор доса) tp 7.1 вроде так....
|
|
| |
anton-gar | Дата: Вторник, 25 Октября 2011, 00:35 | Сообщение # 6 |
WEBmaster
Сейчас нет на сайте
| А проверте, вот это: Code var i,j,lim : word;
begin cls; for i:=1 to 999 do begin j:=2; lim:=round(sqrt(i)); while (i mod j <> 0) and (j <= lim) do inc( j ); if (j > lim) then write( i,' ' ); end; end.
Сообщение отредактировал anton-gar - Вторник, 25 Октября 2011, 00:36 |
|
| |
devil-hunter | Дата: Вторник, 25 Октября 2011, 01:07 | Сообщение # 7 |
был не раз
Сейчас нет на сайте
| этот работает, но в этой задаче в начале надо найти последовательность(массив) из простых чисел, потом найти массив из средние арифметических чисел, стоящих рядом, а уже потом находить значение н-го члена данной последовательности. простые числа 3,5,7,11,13,17,19,23,... средние арифметические 4,6,9,12,15,18,21,... и надо получить к примеру значение н-го 20 элемента. ну третий пункт элементарный))) а вот с делением элементов массива на 2, какой-то косяк выходит. пишет "несоответствие типа"
|
|
| |
anton-gar | Дата: Вторник, 25 Октября 2011, 18:36 | Сообщение # 8 |
WEBmaster
Сейчас нет на сайте
| Quote (anton-gar) var i,j,lim : word;
begin cls; for i:=1 to 999 do begin j:=2; lim:=round(sqrt(i)); while (i mod j <> 0) and (j <= lim) do inc( j ); if (j > lim) then write( i,' ' ); end; end.
Добавьте в верхний экземпляр, по принципу 1 моей задачи, которая ниже...
Quote (anton-gar) var c,i,j,l:integer; begin cls; for i:=3 to 999 do begin j:=2; l:=round(sqrt(i)); while (i mod j <> 0) and (j <= l) do begin inc(j); end; if (j > l) then begin write((c+i)/2,' '); c:=i; end; end; end. Добавлено (25.10.2011, 18:34) --------------------------------------------- Цитаты кода, конечно, становятся нечитабельными... Добавлено (25.10.2011, 18:36) --------------------------------------------- А не работает у вас моя программа, так как у меня другая версия паскаля, отсюда и несоответствие типов.
|
|
| |
|