Подскажите как правильно решить. Дано натуральное n > 0. Найти произведение первых n простых чисел. Подсказка: используйте булевскую функцию для проверки, является число простым числом или нет.
Program q1; uses crt; const n=10; var i,j:integer; mass:array [1..n] of integer; countNum:integer; // переменная для хранения количества нечетных чисел proizv:integer; // переменная для хранения произведения нечетных чисел BEGIN proizv:=1; // так как, изначально равно 0, а при умножении на 0 будет всегда 0 {создание последовательности n целых чисел} Writeln('Случайные целые числа: '); for i:=1 to n do begin mass[ i ]:=random(9)+1; //присваеваем переменной случайное значение от 1 до 10 write(inttostr(mass[ i ])+', '); end; {Вычисление произведения и количества нечетных чисел} for i:=1 to n do if mass[ i ] mod 2 <> 0 then //проверяем не четное-ли число, если да, то.. . begin inc(countNum); //увеличиваем на один кол-во нечетных чисел proizv:=proizv*mass[ i ]; // высчитываем произведение end; {Вывод результатов} writeln; writeln('Всего нечетных чисел: '+inttostr(countNum)); writeln('Их произведение: '+inttostr(proizv)); END.
program q2; uses crt; const n=10; var i,j:integer; mass:array [1..n] of real; Summ:real; // переменная для хранения суммы чисел MNum:real; // переменная для хранения среднего арифметического BEGIN {создание последовательности n отрицательных вещественных чисел} Writeln('Случайные отрицательные вещественные числа: '); for i:=1 to n do begin mass[ i ]:=((random(9)+1)+(random(9)+1)/10)*(-1); //присваеваем переменной случайное вещественное от 1 до 10 write(mass[ i ],'; '); //выводим end; {Вычисление среднего арифметического} for i:=1 to n do Summ:=Summ+mass[ i ]; // высчитываем произведение MNum:=Summ/n;
Var v:array [0..100000] of integer; a:array [0..100,0..100000] of integer; m,p,k,w:integer; procedure step(z,ma:integer);beginif z>0 then if a[z,ma]<>a[z-1,ma] then if a[z-1,ma]<a[z-1,ma-v[z]]+v[z] then begin step(z-1,ma-v[z]); write(v[z],' '); end else step(z-1,ma) else step(z-1,ma); end;
beginread(k);for p:=1 to k do begin read(v[p]); end;read(w);for p:=1 to k do begin for m:=1 to w do begin if m-v[p]>=0 then a[p,m]:=(max(a[p-1,m-v[p]]+v[p],a[p-1,m])) else a[p,m]:=a[p-1,m]; end; end;if a[k,w]=w then step(k,w) else writeln('No solution');end.
1,2,3,4,5,6,7,8,9,10 и до бесконечности