1)
#include <iostream>
#include <cmath>
#include <vector>
#include <algorithm>
#include <set>
using namespace std;
signed main() {
srand(time(NULL));
int n;
cin >> n;
int a[n];
for(int i = 0; i < n; i++)
a[i] = rand() % 5 + 1;
vector<int> ans;
for(int i = 0; i < n; i++)
{
cout << a[i] << " ";
if(a[i] == a[0])
ans.push_back(i);
}
cout << "\n";
for(auto i: ans)
cout << i << " ";
}
2)
#include <iostream>
#include <cmath>
#include <vector>
#include <algorithm>
#include <set>
using namespace std;
signed main() {
int n,k;
cin >> n >> k;
int a[n];
vector<int> ans;
for(int i = 0; i < n; i++)
{
cin >> a[i];
if(a[i] % k == 0)
ans.push_back(a[i]);
}
for(auto i: ans)
cout << i << " ";
}
3)
#include <iostream>
#include <cmath>
#include <vector>
#include <algorithm>
#include <set>
using namespace std;
signed main() {
int n,z;
cin >> n >> z;
int a[n];
for(int i = 0; i < n; i++)
{
cin >> a[i];
a[i] = min(a[i],z);
}
for(auto i: a)
cout << i << " ";
}
ответ:
. в нужно вывести все составные числа из промежутка [2; n]. код программы:
program lab3;
var i,n,j,s,l: integer;
m: real;
begin
readln (n);
for i: =2 to n do
begin
s: =trunc (sqrt (i));
for l: =2 to s do
begin
m: = i mod l;
if m=0 then
write (' ',i);
end;
end;
end.
но проблема - как только s становится больше 2, составные числа начинают несколько раз повторятся, т.к., например 12 делится и на 2 и на 3. вопрос: как мне сделать выход из цикла после первого успешного деления?
var
i, n, j, s, l: integer;
m: real;
begin
readln(n);
for i : = 2 to n do
begin
s : = trunc(sqrt(i));
for l : = 2 to s do
begin
m : = i mod l;
if m = 0 then
begin
write(' ', i);
break;