首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >除以以0为模的素数

除以以0为模的素数
EN

Stack Overflow用户
提问于 2015-07-17 19:07:39
回答 2查看 106关注 0票数 0

假设我有一个数字3294830924。

我想除以素数,2,3,5,7,11,等等。

我想知道哪些运算给了我模0。

类似于:

代码语言:javascript
复制
int[] primeNumbers = ...;
var n = 3294830924;
return primeNumbers.Where(pn=> pn < n).Where(pn=> n % pn == 0)

是否有任何内置的函数或方法来获取C#中的质数列表,或者有一种以数学方式计算质数的方法?

EN

回答 2

Stack Overflow用户

发布于 2015-07-17 19:22:55

您可以下载、生成或连接到具有质数列表的数据库,并在每次需要执行操作时使用此列表。

例如,前10,000个素数的列表:

https://primes.utm.edu/lists/small/10000.txt

前五千万个素数:

https://primes.utm.edu/lists/small/millions/

如果这些数字位于关系数据库(如SQL Server Express)的表中,则可以使用linq更有效地检查该数字是否为质数,因为您可以对质数使用聚集索引。

票数 1
EN

Stack Overflow用户

发布于 2015-07-17 19:23:02

您可以创建一个自定义函数来检查Prime,

代码语言:javascript
复制
private bool IsPrime(int number)
{
if (number < 2) return false;
if (number == 2) return true;
if (number % 2 == 0) return false;
for (int i = 3; i * i <= number; i += 2)
if (number % i == 0) return false;
return true;
}

然后计算素数为

代码语言:javascript
复制
var primes =
from number in Enumerable.Range(1, your_number)
where IsPrime(number)
select number;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31474425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档