Программа в системе PascalABC.Net (время выполнения около 2с) 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
Т.к. язык программирования не указан, сделаю на свой вкус, т.е. C++. При копировании кода из IDE на сайт автоматически удаляется перенос строки. Будет прикреплен скриншот того, как должен выглядеть код
#include <stdlib.h>#include <stdio.h>#include <locale> void main(){ setlocale(LC_ALL, "RUSSIAN"); int i, n, an; an = 0; printf("\n Введите n ->"); scanf_s("%d", &n); for (i = 1; i <= n; i++) an = an+i; printf("\n Сумма первых n натуральных чисел равна: %d", an); an = 0; for (i = 1; i <= n; i++) an = an + i*i; printf("\n Сумма квадратов первых n натуральных чисел равна: %d", an); an = 0; for (i = 1; i <= n; i++) if (i % 2 == 0)an = an + i; printf("\n Сумма всех четных чисел в диапозоне от 1 до n: %d", an); an = 0; for (i = 10; i <= 99; i++) an = an + i; printf("\n Сумма всех двухзначных чисел равна: %d \n", an); system("pause");}
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
#include <stdlib.h>#include <stdio.h>#include <locale>
void main(){ setlocale(LC_ALL, "RUSSIAN"); int i, n, an; an = 0; printf("\n Введите n ->"); scanf_s("%d", &n); for (i = 1; i <= n; i++) an = an+i; printf("\n Сумма первых n натуральных чисел равна: %d", an); an = 0; for (i = 1; i <= n; i++) an = an + i*i; printf("\n Сумма квадратов первых n натуральных чисел равна: %d", an); an = 0; for (i = 1; i <= n; i++) if (i % 2 == 0)an = an + i; printf("\n Сумма всех четных чисел в диапозоне от 1 до n: %d", an); an = 0; for (i = 10; i <= 99; i++) an = an + i; printf("\n Сумма всех двухзначных чисел равна: %d \n", an); system("pause");}