|
|
|
Программа с простыми числами с использованием LINQ
|
|||
|---|---|---|---|
|
#18+
Подскажите, если кто знает. Программа для вывода простых чисел в заданном промежутке от a до b. Почему простые числа выводятся только на промежутке от 2 до какого-либо числа b. А если выводишь с консоли какое-либо начальное значение больше 2 программа не работает (простые числа не выводятся). Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2010, 12:30 |
|
||
|
Программа с простыми числами с использованием LINQ
|
|||
|---|---|---|---|
|
#18+
rfl, Это откуда такое??? Приведенный код вообще неработоспособен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2010, 23:55 |
|
||
|
Программа с простыми числами с использованием LINQ
|
|||
|---|---|---|---|
|
#18+
rflПочему простые числа выводятся только на промежутке от 2 до какого-либо числа b. А если выводишь с консоли какое-либо начальное значение больше 2 программа не работает (простые числа не выводятся). Все очень просто, у Вас код неправильный. Советую почтитать про Решето Эратосфена ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2010, 11:10 |
|
||
|
Программа с простыми числами с использованием LINQ
|
|||
|---|---|---|---|
|
#18+
VitaliyBorisrfl, Это откуда такое??? Приведенный код вообще неработоспособен. Код работает. Компилировал в Microsoft Visual Studio 2008. Но простые числа выводятся если выбираешь диапазон от 2. Если выбираешь от 3 и выше, выводятся просто диапазон выбранных значений. Простые числа не выводятся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2010, 14:37 |
|
||
|
Программа с простыми числами с использованием LINQ
|
|||
|---|---|---|---|
|
#18+
rflКод работает. конечно, код неправильный... если делать в лоб, "неумно", то код будет выглядеть примерно так: Func<int, IEnumerable<int>> primeNumbers = max => from i in Enumerable.Range(a, max - a + 1) where Enumerable.Range(2, i - a).All(j => i % j != 0) select i; но не составит труда нагуглить более "умные" решения (проверять лишь нечетные и 2, и т.п.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2010, 14:54 |
|
||
|
Программа с простыми числами с использованием LINQ
|
|||
|---|---|---|---|
|
#18+
может не в тему, однако... просматривал вскользь доку о Parallel LINQ (PLINQ) в FW4, опробовал на этом примере (4-ядерный серверок). PLINQ отработал в три раза быстрее! PLINQ загрузил все четыре почти на 100% (против 25% - LINQ) и, главное, модификация кода запроса вылилась аж в Func<int, IEnumerable<int>> primeNumbers = max => from i in Enumerable.Range(a, max - a + 1) .AsParallel() where Enumerable.Range(2, i - a).All(j => i % j != 0) select i; (нифигасебедумалясебе, ну мокрософты дают!) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2010, 13:57 |
|
||
|
|

start [/forum/topic.php?fid=17&msg=36806300&tid=1351120]: |
0ms |
get settings: |
7ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
67ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 221ms |
| total: | 380ms |

| 0 / 0 |
