const n = 99; var p: array[2..n] of boolean; i, pr: integer; flag: boolean; begin for i : = 2 to n do p[i] : = true; pr : = 2; flag : = true; while flag do begin i : = 2 * pr; while i < = n do begin p[i] : = false; i : = i + pr; end; flag : = false; for i : = pr + 1 to n do if p[i] then begin pr : = i; flag : = true; break; end; end; for i : = 10 to n do if p[i] then write(i, ' '); readln; end.моя быстрее работает : р
Решение #1
Просто вбиваешь код в любой редактор кода с питоном, в конце добавляешь print(i, S) и получаешь ответ.
Решение #2
Заметим, что код внутри while выполнится 3 раза, т.к. после третьего выполнения переменная i будет равна 3, и цикл while перестанет работать. Следовательно, переменная S также будет три раза увеличиваться на i.
при i == 0: i = 0 + 1 = 1; S = 0 + 1 = 1;при i == 1: i = 1 + 1 = 2; s = 1 + 2 = 3;при i == 2: i = 2 + 1 = 3; S = 3 + 3 = 6;при i == 3: код внутри while не выполняется.Получим, что переменная i в итоге стала равна 3, а S — 6.
В ответе сначала указываем i, а затем S.
ответ: В (3, 6).
Код:
#include <iostream>
using namespace std;
int main()
{
int arrsize;
cout << "Arrsize: ";
cin >> arrsize;
int* arr = new int[arrsize];
for(int i = 0; i < arrsize; i++)
cin >> arr[i];
for(int i = 0; i < arrsize; i++)
{
for (int j = i + 1; j < arrsize; j++)
{
if(arr[i] == arr[j])
{
bool wasBefore = false;
for(int k = 0; k < i; k++)
{
if(arr[k] == arr[i])
{
wasBefore = true;
break;
}
}
if(!wasBefore)
cout<<arr[i]<<" ";
break;
}
}
}
return 0;
}
Поделитесь своими знаниями, ответьте на вопрос:
Определить все простые двузначные числа. есть предположение, что решается именно так, составить блок-схему. program example14; var i: integer; function prost(i: integer): boolean; var j: integer; begin prost : = true; i: =abs(i); for j : = 2 to (i div 2) do if (i mod j = 0) then prost : = false; end; begin for i : = 10 to 99 do if prost(i) = true then write(i: 5); readln(i); end.
var prost: array [1..100] of integer; i, max, n, j: integer; is_prost: bool; begin max : = 99; prost[1] : = 2; n : = 1; for i : = 2 to max do begin is_prost : = true; for j : = 1 to n do begin is_prost : = is_prost and not (i mod prost[j] = 0); end; if is_prost then begin n : = n + 1; prost[n] : = i; end; end; for i : = 1 to n do if prost[i] > 9 then write(prost[i], ' '); end.