![]() |
ПОмогите пожалуйста решить задачу по програмированию
:молись: ПОмогите пожалуйста решить задачу по програмированию!!!
Задача такая: Определить, является ли число простым. Простым будет считаться число, которое делится только на 1 и на само себя. Составить процедуру для определения количества делителей произвольного числа, введенного с клавиатуры. :idontnow: :help: |
Тебе на Pascal подойдет? Вроди у меня был исходник такой задачи.
|
Самый простой способ это перебирать, числа от 1 до корня из N, и смотреть делится или нет.
Есть тест Рабина-Карпа, но там ответ дается с вероятностью. Чем больше испытаний тем ближе она к единице. Если интересно можно почитать Акритаса или Винограда или Бухштаба. Обычно книги называется теория чисел (number theory). |
Не уверен это ли, так как сейчас нет времени дальше искать.
Отпиши потом - подошло ли. Цитата:
|
Можно использовать решето Эратосфена.
Алгоритм такой - есть диапазон чисел, вначале выбрасываем все числа кратные 2 - смотрим минимальное не выброшенное число - выбрасываем все числа кратные этому числу и.т.д |
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. |
Лучший, кажется, вероятностный тест Рабина-Миллера
http://www.rusnauka.com/ESPR_2006/In...20e.d..doc.htm Если надо для небольших чисел, то решето Эратосфена |
Нужно решить задачку на 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 можно ли найти на других сайтах??? |
Цитата:
Я так шукав :biggrin: 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; |
Цитата:
Насколько я понял из условия, надо найти количество делителей числа, если оно не простое: /* n - число введенное с клавиатуры; */ int flag = 0; for (int i=2; i<n; i++) { if (n\i) flag++; // - если правда, то числа делятся без остатка, значит есть делитель; } if (flag) // - число не простое, выводим количество делителей, оно в переменной flag; else // - выводим "число простое" (типа flag = 0 значит делителей не было найдено); |
| Часовой пояс GMT +4, время: 13:11. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.