Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ найти простое шестизначное число

Автор: maksimla 27.12.2009 21:21

Задание напишите функцию которая нашла бы хотябы один любой шестизначное простое число. функции запись

function pervicnoe(pr:string):longint;

pr это начало числa пример '123'. Строчки pr длина от 0 до 6 символов, и строчка неначинается с 0.
Если первичное число несуществует то тогда результат функции должен быть 0.
пример
123
результат
123001
пример
999
результат
999007


вот что написал только без функции и без string
program prostoje;
var a,b,c:longint;
begin
WriteLn('vvedite trexznacnoe cislo');
Readln(a);
a:=a*1000;
repeat
c:=0;
for b:=1 to a do
if (a mod b =0) or (a=b) then c:=c+1;
if c=2 then writeln(a);
inc(a);
until (c=2) or (a=999999);

readln;
end.

http://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D1%81%D1%82%D0%BE%D0%B5_%D1%87%D0%B8%D1%81%D0%BB%D0%BE

Автор: andriano 27.12.2009 21:52

1. Я бы перевел строку в число. Например: val(s,i,j); i := i*1000;.
2. Перебор потенциальных делителей нужно начинать не с 1, а с 2 и заканчивать не самим числом, а корнем из него.
3. Хорошо бы заранее составить таблицу простых чисел от 2 до 1000 и при переборе делить не на все числа подряд, а только на простые.

Автор: maksimla 28.12.2009 0:13

спасибо