школьные олимпиады по программированию.Решение и разбор задач.

var a,i,j,n:integer;
s,ss:string;


PROCEDURE PROST(K:INTEGER);
VAR I,J,N:INTEGER;
BEGIN
N:=0;
FOR I:=1 TO K DO
IF K DIV I=K/I THEN INC(N);
IF N=2 THEN
BEGIN
STR(K,S);
SS:=SS+S;
END;
END;

begin

assign(input,'input.txt');
assign(output,'output.txt');
reset(input);
rewrite(output);
readln(n);
i:=1;
repeat
inc(i);
prost(i);
until length(ss)>=n;
writeln(ss);
write(ss[n]);
end.

Анализ и разбор задачи.Знания и умения.
Условие задачи:
Определить к-ое число последовательности из простых чисел вида 2357111317...
INPUT.TXT
5
OUTPUT.TXT
1


Алгоритм
1)из входного файла input.txt считываем к-ое число

2)в цикле с постусловием организуем рост строки простых чисел до тех пор пока она не превышает "к", внутри тела цикла процедура определения простоты числа и ее организация в строку если число простое

3)к-ый элемент строки простых чисел выводится как элемент массива ss[k]

Знать:
  • понятие простых чисел
  • оператор выбора "if <условие> then <оператор>"
  • арифметические операторы "div" и "mod"
  • циклы с параметром for.., с предусловием while..., с постусловием repeat...
  • понятие,свойства,функции и процедуры работы со строковой переменной в Турбо Паскале 7.0
  • обьявление процедуры в Турбо Паскале 7.0


Уметь:
  • работать с входными и выходными файлами input.txt output.txt
  • генерировать простые числа
домой
Hosted by uCoz