我正在编写一个带有一些素数相关方法的小库.因为我已经完成了基础工作(也就是工作方法),现在我正在寻找一些优化.当然,互联网是一个很好的地方.然而,我偶然发现了一个四舍五入的问题,我想知道如何解决这个问题.
在循环中,我用它来测试一个数字,因为它的搜索效率更高,搜索直到sqrt(n)而不是n/2甚至n - 1.但由于舍入问题,一些数字会被跳过,因此会跳过一些素数!例如,第10000个素数应为:104729,但"优化"版本最终为:103811.
一些代码(我知道,它可以进行更多优化,但我一次只能处理一件事):
/// <summary>
/// Method for testing the primality of a number e.g.: return IsPrime(29);
/// History:
/// 1. Initial version, most basic form of testing: m smaller then n -1
/// 2. Implemented m smaller then sqrt(n), optimization due to prime factoring
/// </summary>
/// <param name="test">Number to be tested on primality</param>
/// <returns>True if the number is prime, false otherwise</returns>
public static bool IsPrime(int test)
{
// 0 and 1 are not prime numbers …Run Code Online (Sandbox Code Playgroud) FileStream的读/写方法只能integer取值为length.但是FileStream对象的返回长度为long.在这种情况下,如果文件大小大于integer值(大约超过2GB),该怎么办?然后FileStream的读/写方法如何处理long值.
今天我注意到C#的String类返回一个字符串的长度作为Int.由于Int总是32位,无论架构如何,这是否意味着字符串的长度只能是2GB或更小?
一个2GB的字符串将是非常不寻常的,并提出许多问题.但是,大多数.NET api似乎都使用'int'来传达长度和计数等值.这是否意味着我们永远受限于适合32位的集合大小?
似乎是.NET API的一个基本问题.我希望通过相当于'size_t'的方式返回count和length之类的东西.
我有一个字符串"可能"比任何简单的int边界长.
目前,string.substring函数只接受int参数作为索引和长度,这对我来说是不够的,因为我需要很长的参数值类型.
你知道长子串函数的任何实现吗?
或者你建议我用非常长的字符串解决这个可能的子串问题?
谢谢.
我正在解决Project Euler中的问题.大部分问题都解决了
Run Code Online (Sandbox Code Playgroud)Ex : ulong number = 81237146123746237846293567465365862854736263874623654728568263582;
例如:十进制dec = 0,3242342543573894756936576474978265726385428569234753964340653;
例如:bool [] items = new bool [213192471235494658346583465340673475263842864836];
我找到了一个名为IntX的库来解决这个大数字.但我想知道如何用基本的.NET类型解决这个问题?
谢谢你的回复!
如何使用PHP的date()函数使用以下16位数时间戳(来自XML文件)?
1295076698126000 // 15-01-2011 08:31:38.126
1286697695521000 // 10-10-2010 10:01:35.521
Run Code Online (Sandbox Code Playgroud)