imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 23.10.2006, 20:49     # 1
ХАрок
Guest
 
Сообщения: n/a

ПОмогите пожалуйста решить задачу по програмированию

ПОмогите пожалуйста решить задачу по програмированию!!!
Задача такая:
Определить, является ли число простым. Простым будет считаться число, которое делится только на 1 и на само себя. Составить процедуру для определения количества делителей произвольного числа, введенного с клавиатуры.

Последний раз редактировалось RaZEr; 23.10.2006 в 21:38.
 
Старый 23.10.2006, 21:20     # 2
Yurij
Member
 
Аватар для Yurij
 
Регистрация: 30.05.2003
Адрес: Литва
Пол: Male
Сообщения: 329

Yurij Луч света в тёмном царствеYurij Луч света в тёмном царствеYurij Луч света в тёмном царствеYurij Луч света в тёмном царствеYurij Луч света в тёмном царствеYurij Луч света в тёмном царстве
Тебе на Pascal подойдет? Вроди у меня был исходник такой задачи.
Yurij вне форума  
Старый 23.10.2006, 21:22     # 3
Kvarx
Member
 
Регистрация: 26.09.2005
Адрес: Питер
Сообщения: 336

Kvarx Известность не заставит себя ждатьKvarx Известность не заставит себя ждать
Самый простой способ это перебирать, числа от 1 до корня из N, и смотреть делится или нет.

Есть тест Рабина-Карпа, но там ответ дается с вероятностью. Чем больше испытаний тем ближе она к единице.

Если интересно можно почитать Акритаса или Винограда или Бухштаба. Обычно книги называется теория чисел (number theory).
Kvarx вне форума  
Старый 23.10.2006, 21:36     # 4
Yurij
Member
 
Аватар для Yurij
 
Регистрация: 30.05.2003
Адрес: Литва
Пол: Male
Сообщения: 329

Yurij Луч света в тёмном царствеYurij Луч света в тёмном царствеYurij Луч света в тёмном царствеYurij Луч света в тёмном царствеYurij Луч света в тёмном царствеYurij Луч света в тёмном царстве
Не уверен это ли, так как сейчас нет времени дальше искать.
Отпиши потом - подошло ли.
Цитата:
program pir_сршыд;
var x: integer;
{ function ISPRIMFN (n : longint) : boolean;
var i : longint;
begin
isprimfn := true;
for i := 2 to Round(Sqrt(n)) do
if (n mod i) = 0 then begin
isprimfn := false;
exit;
end;
end; }
function pirminis(x: integer):boolean;
var i, j, tmp: integer;
begin
tmp:=0;
if (x>0) then begin
for i:=1 to x do
if x mod i = 0 then tmp:=tmp+1; {kollichesto delitelej}
if tmp=2 then pirminis:=true else
pirminis:=false;
end else
pirminis:=false;
end;
begin
Write('vvedite chislo: ');
ReadLn(x);
if pirminis(x) then WriteLn('pravilnoe chislo') else
WriteLn('ne to...');
ReadLn
end.
Yurij вне форума  
Старый 01.11.2006, 07:30     # 5
Decline
Newbie
 
Регистрация: 15.10.2006
Сообщения: 6

Decline Нуль без палочки
Можно использовать решето Эратосфена.
Алгоритм такой - есть диапазон чисел, вначале выбрасываем все числа кратные 2 - смотрим минимальное не выброшенное число - выбрасываем все числа кратные этому числу и.т.д
Decline вне форума  
Старый 02.11.2006, 12:09     # 6
helldomain
Administrator
 
Аватар для helldomain
 
Регистрация: 13.05.2002
Сообщения: 11 227

helldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиург
helldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиург
Algoritm horosh, no, trudno predstawit sebe, chto-bi zadacha po wibrasiwaniju kratnih chisel rabotala bistree deleniya, hotya mojno, po idee, sdelat rekursiju. Primer dlya chisla 7:
chislo 7 prostoe - rekursivno zapuskaem perebor ot 7 do 13
8 - propuskaem
9 - budet propuscheno ranee, t.k. 9 podpadaet pod 3.
i.t.d.
__________________
Осколки прошлого, как снег, закрутит ураган времён,
В ушедший день для нас навек, обрушив мост,
Оставив в наших душах след, тьма уплывёт за горизонт,
И в чистом небе вспыхнет свет, свет новых звёзд.
helldomain вне форума  
Старый 06.11.2006, 03:11     # 7
Volt
Junior Member
 
Аватар для Volt
 
Регистрация: 02.08.2006
Адрес: Москва
Сообщения: 89

Volt Известность не заставит себя ждатьVolt Известность не заставит себя ждать
Лучший, кажется, вероятностный тест Рабина-Миллера
http://www.rusnauka.com/ESPR_2006/In...20e.d..doc.htm
Если надо для небольших чисел, то решето Эратосфена
Volt вне форума  
Старый 13.11.2006, 18:58     # 8
@Gava
Guest
 
Сообщения: n/a

Нужно решить задачку на C#
1. Вначале записать в файл (t:streamr.txt) при помощи randomise() одномерный массив
2. Затем создать меню из нескольких (4) сортировок(shell,shaker,etc) и выводить отсортированный массив в (t:streamw.txt) как rezult.

Также нужен готовый windows Calculator на C#:
http://www.csharpfr.com/codes/CALCULATRICE-SIMPLE_11429.aspx
можно ли найти на других сайтах???
 
Старый 23.11.2006, 02:51     # 9
DIEagnoz
Guest
 
Сообщения: n/a

Цитата:
Сообщение от ХАрок
ПОмогите пожалуйста решить задачу по програмированию!!!
Задача такая:
Определить, является ли число простым. Простым будет считаться число, которое делится только на 1 и на само себя. Составить процедуру для определения количества делителей произвольного числа, введенного с клавиатуры.
Шукаємо прості числа від 1 до 1000 (С++)
Я так шукав
for (int i=3;i<=1000;i++)
if (i%2&&i%3&&i%5&&i%7!=0||i==3||i==5||i==7)
cout<<"\t"<<i;
 
Старый 23.11.2006, 17:08     # 10
Demich
Guest
 
Сообщения: n/a

Цитата:
ХАрок:
Определить, является ли число простым. Простым будет считаться число, которое делится только на 1 и на само себя. Составить процедуру для определения количества делителей произвольного числа, введенного с клавиатуры.
Не стоит ломать голову над математикой. Все намного проще.
Насколько я понял из условия, надо найти количество делителей числа, если оно не простое:

/* n - число введенное с клавиатуры; */
int flag = 0;
for (int i=2; i<n; i++)
{
if (n\i) flag++; // - если правда, то числа делятся без остатка, значит есть делитель;
}
if (flag) // - число не простое, выводим количество делителей, оно в переменной flag;
else // - выводим "число простое" (типа flag = 0 значит делителей не было найдено);
 


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 11:57.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.