#include <iostream>
#include <cmath>
#include <algorithm>
#pragma GCC optimize("Ofast")
#define ll long long
#define ld long double
using namespace std;
ll digits(ll a){
ll c = 0;
while(a > 0){
a /= 10;
c++;
}
return c;
}
signed main() {
srand(time(NULL));
const ll n = 25;
ll sum = 0;
ll mas[n];
for(ll i = 0; i < n; i++){
mas[i] = rand() % 493 - 246;
cout << mas[i] << " ";
if(digits(mas[i]) == 2 && mas[i] % 4 == 0)
sum += mas[i];
}
cout << "\n" << sum;
}
var
n1,n2,n3:int64;
function IsPrime(n:Int64):Boolean;
var
p:Int64;
found:Boolean;
begin
case n of
1:Isprime:=False;
2:IsPrime:=True;
else begin
found:= (n Mod 2 = 0);
p:=3;
while (not found) and (sqr(p)<=n) do
begin found:=(n Mod p = 0); p:=p+2 end;
IsPrime:=(not found) or (p = 2)
end
end
end;
procedure Fib();
begin
n3:=n1+n2; n1:=n2; n2:=n3
end;
var
i,k:integer;
begin
n1:=0; n2:=1; k:=0;
Writeln('Простые среди первых 45 чисел Фибоначчи');
for i:=3 to 45 do
begin
Fib; if IsPrime(n3) then begin Write(n3,' '); Inc(k) end
end;
Writeln(#13#10,'Найдено простых чисел: ',k)
end.
Результат выполнения программы:
Простые среди первых 45 чисел Фибоначчи
2 3 5 13 89 233 1597 28657 514229 433494437
Найдено простых чисел: 10