// PascalABC.NET 3.1, сборка 1250 от 28.05.2016
begin
var a:=ArrRandomReal(28,0.001,2); a.Println;
Writeln(NewLine,'P=',a.Where(x->x<1.0).Aggregate(1.0,(p,x)->p*x))
end.
Тестовое решение
0.0398313784756844 0.521430412644721 1.21896472712139 1.94948843003553 1.15333909315725 0.788220413078657 0.284177359403659 1.78978303515016 0.678028235740042 1.55275635141682 0.189534365820482 0.741079475998916 1.8561824476473 1.56863753180655 1.46180190814184 0.424840159483645 1.72583213937042 1.9121896329998 1.74689281148598 1.49191368740467 0.900698237893031 0.867495573381193 1.51968024434926 1.28361295387922 0.144896066409953 0.40525055964489 0.897010715250862 1.71948831971571
P=7.74656862552087E-06