Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.09.2014, 16:04   #1
Тетрадь
Пользователь
 
Регистрация: 03.11.2013
Сообщений: 37
По умолчанию программа для проверки, можно ли N представить в виде произведения двух простых чисел. паскаль

Составить программу для проверки, можно ли N представить в виде произведения двух простых чисел. Паскаль. В чем ошибка, как доработать?
Код:
function prost (i:integer):integer;
var
n,j,s :integer;
begin
for i:=2 to n do begin
s:=0;
for j:=1 to i div 2 do begin
if i mod j=0 then inc(s);
end;
if s=1 then Writeln(i);
end;
end;

var
  N, i: integer;

begin
  write('N = ');
  readln(n);
  i := 2; 
  While n mod i > 0 do
    if i = 2 then inc(i)
    else inc(i, 2);
  writeln;
  if prost(i) and prost(n div i) then writeln('Можно')
  else writeln('Нельзя');
  readln
end.
end.
Тетрадь вне форума Ответить с цитированием
Старый 23.09.2014, 16:58   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Это вам не это! (© дикий прапор, "ДМБ")
Код:
function prost (i: integer): integer;
var
  n, j, s :integer;
begin
  for i:= 2 to n do // немного странный параметр цикла, да? И конечное значение что-то не того...
    begin
      s:= 0;

      for j:= 1 to i div 2 do
        if i mod j = 0
          then inc(s);

      if s = 1
        then Writeln(i);
    end;
    
  { Это ж всё-таки функция, да?
    Она жеж должна возвращать какое-то значение типа integer, да? }
end;
Как только отформатируешь код по-человечески, тут же все косяки вылазят на свет.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...

Последний раз редактировалось min@y™; 23.09.2014 в 17:04.
min@y™ вне форума Ответить с цитированием
Старый 23.09.2014, 17:03   #3
Тетрадь
Пользователь
 
Регистрация: 03.11.2013
Сообщений: 37
По умолчанию

так
Код:
prost:=s;
?
Тетрадь вне форума Ответить с цитированием
Старый 23.09.2014, 17:08   #4
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Как звучит задание в оригинале?
Разрядность Integer какая? 16 бит со знаком? или 32? Про 64 не спрашиваю.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...

Последний раз редактировалось min@y™; 23.09.2014 в 17:10.
min@y™ вне форума Ответить с цитированием
Старый 23.09.2014, 20:08   #5
Тетрадь
Пользователь
 
Регистрация: 03.11.2013
Сообщений: 37
По умолчанию

Составить программу для проверки, можно ли заданное натуральное число N представить в виде произведения двух простых чисел
Тетрадь вне форума Ответить с цитированием
Старый 23.09.2014, 20:15   #6
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Это важно.
Цитата:
Разрядность Integer какая?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 23.09.2014, 20:26   #7
Тетрадь
Пользователь
 
Регистрация: 03.11.2013
Сообщений: 37
По умолчанию

Я не знаю, что это.integer есть integer. Мы не проходили никакую разрядность.
Тетрадь вне форума Ответить с цитированием
Старый 23.09.2014, 20:40   #8
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Я не знаю, что это.integer есть integer. Мы не проходили никакую разрядность.
Перефразирую. Максимальное число у тебя в этом типе каҡое?
32767 или
65535 или
2147483647 или
4294967295
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 23.09.2014, 20:44   #9
Тетрадь
Пользователь
 
Регистрация: 03.11.2013
Сообщений: 37
По умолчанию

вот 32767
Тетрадь вне форума Ответить с цитированием
Старый 23.09.2014, 20:57   #10
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
вот 32767
15 бит и знак.
Я вот к чему веду: в начале можно найти все простые числа в диапазоне от 0 до 32767, запомнить их и использовать для поиска? По одному биту на число - это 32768/8 = 4096 байт = 4 кбайт массив.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Можно число N представить в виде произведения двух простых чисел? Тетрадь Помощь студентам 0 19.09.2014 17:18
создание програмы на делфи циклы:ввести натуральное число и определять, можно ли число представить в виде суммы двух простых чисел Костяхалк Помощь студентам 24 28.01.2014 08:48
Представить n в виде произведения простых чисел akademochka Общие вопросы C/C++ 24 23.03.2013 12:13
Можно ли число N представить в виде сумы двух квадратов натуральных чисел? Dima170792 Помощь студентам 2 24.06.2011 08:53
Дано натуральное число n. Можно ли представить его в виде суммы двух квадратов натуральных чисел? Сеня Помощь студентам 3 29.01.2009 01:17