П1 <-> П0 5 , 2 3 ИП0 x^2 * 4 , 3 6 ИП0 * + 1 , 2 ИП1 3 <-> x^y * + 0 , 8 9 ИП1 * ИП0 ИП1 + sin 2 * ИП0 ИП1 * e^x * / + С/П
/*Код соответствует тексту задания из файла. Последовательность вводится в строку через знаки пробела, нажатие клавиши Enter заканчивает ввод последовательности. Программа НЕ проверяет корректность введенных данных*/
#include <iostream>
bool is_prime(const int n);
int main(int argc, char* argv[])
{
int numb, n_of_pr_numb = 0;
long int sum = 0;
do
{
std::cin >> numb;
if(is_prime(numb))
{
sum += numb;
n_of_pr_numb++;
}
} while (std::cin.peek() != '\n');
std::cout << "The arithmetic mean: " << (n_of_pr_numb == 0 ? 0 : sum * 1. / n_of_pr_numb);
}
bool is_prime(const int n)
{
if (n <= 1)
{
return false;
}
for (int i = 2; i <= pow(n, 1/2); i++)
{
if (n % i == 0)
{
return false;
}
}
return true;
}
_______________________________________
Основные ошибки/недочеты Вашей реализации:
- В функции pr строка for ( a = 2 ; a<=n ; a++) неверна, т.к. на последнем шаге число всегда будут сравнивать с самим собой, правильно for ( a = 2 ; a<n ; a++). Ну и нет смысла проверять до a=n-1, достаточно проверить до √n(об этом есть целая теорема).
- По условию никакого вывода слов "Простое/Не простое" не требуется
- Строка cout << "n = "; лишняя, т.к. даже если на ввод будет подано несколько чисел, на экран "n = " будет выведено лишь в начале. Лучше уточнить для пользователя формат ввода.
- Смысл функции arif неясен, она выводит на консоль какие-то непонятные пользователю данные, затем возвращает s/i[ВНИМАНИЕ! Так как s и i целочисленные, то s/i не является средним арифметическим, это будет лишь целая часть от него. Правильнее s * 1./i или static_cast<double>(s)/i], а затем выводит это значение. Зачем разрывать cout на две функции - неясно
- Ввод данных не должен находиться в функции проверки числа на простоту(да и смысл разбиения программы на функции пропадает)
1)Var a: array [1..10] of integer;
pr,i:integer;
begin
pr:=1;
for i:=1 to 10 do
begin
readln(a[i]);
if a[i] mod 7 = 0 then
pr:=pr*a[i];
end;
writeln(pr);
end.
2)Var a: array [1..17] of integer;
count,i:integer;
begin
randomize;
count:=0;
for i:=1 to 17 do
begin
a[i]:=random(21)-10;
writeln(a[i]);
if a[i]>0 then inc(count);
end;
writeln(count);
end.
3)Var a: array of integer;
count,i,n,c:integer;
begin
readln(n);
count:=0;
Setlength(a,n+1);
c:=0;
for i:=1 to n do
begin
readln(a[i]);
if (a[i]>5) and (i mod 2 =0) then
begin
inc(count);
c:=c+a[i];
end;
end;
writeln(c/count);
end.
4)Const N=35;
Var a: array [1..N] of integer;
i:integer;
begin
randomize;
for i:=1 to N do
begin
a[i]:=random(21)-5;
write(a[i]:4);
if (a[i] mod 10 = 5) then a[i]:=0
else a[i]:=1;
end;
writeln;
for i:=1 to N do
write(a[i]:4);
end.
Var a:array[1..10] of integer;
i,x:integer;
begin
write('Исходный массив: ');
for i:=1 to 10 do
begin
a[i]:=random(5);
write(a[i],' ');
end;
WRITELN;
write('Что ищем?: ');
readln (x);
for i:=1 to 10 do if x=a[i] then write('A[',i,'] ');
end.
Как я тебя понял, языки программирования это C1 и Java