Было выведено L, значит, изначально тип данных был или символьный (char), либо строка (string). По одному только выводу сказать, какой тип у переменной, не получится. Например, для следующего кода будет выведено две буквы L:
var n,i,k : integer; function Prost (a : integer) : boolean; //Возвращает true если число простое var i,b : integer; r : boolean; begin r := true; i := 2; b := a div 2; While (i <= b) and (r) do begin if a mod i = 0 then r := false; i := i +1; end; Result := r; end;
function chet (l : integer) : integer; //Определяет кол-во var i,s : integer; //возможных произведений // в числовой последовательносьти //заданной длины begin s := 0; for i := 0 to k do s := s +(k - i); result := s; end; begin readln (n); k := 0; for i := 2 to n do if prost(i) then begin k := k +1; //write (i,' '); // Вывод простых чисел(если надо, то раскоменьтить) end; writeln (); writeln ('Кол-во простых чисел на диапазоне = ',k); writeln ('Кол-во произведений ',k,' различных чисел : ',chet(k)); end.
Вроде работает, хотя вероятно есть более эффективный алгоритм. Единицу не учитывал как простое. Блок схему рисовать не буду - геморойной, да и не силен я в этом
Просто попытаюсь объяснить алгоритм
1) Мы находим все простые числа на диапазоне от 1 до n (выполняется функцией (prost), и перебором. 2) Исходя из кол-ва найденных простых чисел мы можем найти кол-во их произведений. Т.к все числа различны и идут в порядке увеличения. Это делается с функции (chet)
char или string
Объяснение:
Было выведено L, значит, изначально тип данных был или символьный (char), либо строка (string). По одному только выводу сказать, какой тип у переменной, не получится. Например, для следующего кода будет выведено две буквы L:
Код (Pascal):
var
s: string;
c: char;
begin
s := 'L';
c := 'L';
write(s, c)
end.