Articles of 素数

素数查找器找不到素数,7点后停止

所以我为3到200之间的数字做了一个简单的素数寻找器。它必须使用一个布尔variables,只是fyi。 没有错误发生。 输出是: 3到200之间的素数是: 3 五 7 为什么不继续? 我一次又一次地在纸上画出来,找不到我的逻辑错误。 此外; 我手写这个,因为我不知道如何获取我的文件的内容。 它存在于我没有root权限的远程主机上。 有没有更好的方法来复制文件? #include <iostream> using namespace std; int main() { int count=0; cout<<"The prime numbers between 3 and 200 are: "<<endl; for (int i=3;i<=200;i++) { for (int j=2;j<i;j++) { bool ptest=i%j; if (!ptest) { break; } else if (ptest) { count=count+1; if (count==(i-2)) cout<<i<<endl; […]

大素数在c

我从Eular问题页面做了另一个问题。 10以下的素数之和是2 + 3 + 5 + 7 = 17。求出所有低于200万的素数之和。 我已经设法编写下面的代码,但是我认为在某个地方(即当我们遇到大的素数时)代码失去了准确性。 答案应该是142913828922,但我得到1179908154。 我不知道为什么我没有得到答案,因为下面的代码适用于10以下。 任何帮助将是伟大的。 我在做这些问题的原因是为了让C更好。 码: #include <stdio.h> #include <stdlib.h> #include <math.h> /* Initialise */ void CalcNumber(unsigned long number); int isPrime(unsigned long number); /* Functions*/ void CalcNumber(unsigned long number) { unsigned long i = 1; unsigned long prime = 0; while(i != number) { i++; […]

从另一个线程中终止C ++中的线程

基本上我用两个线程find质数。 我将每个线程的可能素数的范围分成两半,否则静态分配线程之间的范围。 然而,处理较小数字的线程将不可避免地在计算较大数字之前完成。 我想要做的就是一旦任何一个线程通过它的范围,终止两个线程,然后把尚未完成的线程的其余部分的一半还原到那个线程,以便它们recursion地平均,将始终并行运行。 例如:A(1-100)和B(100-200),A在B仍然在150时结束。A停止,A开始像A(150-175),B开始像B(175-200)。 这是我的代码到目前为止: #include <windows.h> #include <stdio.h> #include <process.h> #include <queue> #include <cmath> #include <iostream> using namespace std; priority_queue<int> primes; CRITICAL_SECTION critical; struct args { int begin; int end; }par1, par2; int e_prosto(int n) { for(int i = 2; i*i<(n + 1) ; i++) if (n & 1 == 0 || n […]

certificate强可能素数的素数

使用Miller-Rabintesting的概率版本,我生成了一个大中(200-300位)的可能素数列表。 但可能不够好! 我需要知道这些数字是素数。 有没有一个库(最好是用Python包装或包装),实现了一个更高效的素数validationalgorithm? 另外,有没有人知道我在哪里可以find一个清晰 , 详细 , 完整的ECPP(或类似的快速algorithm)的描述,不承担大量的先验知识? 更新:我发现了另一个testingAPRT-CLE的Java实现 ,最终certificate了素数。 它在一个primefaces处理器上在10分钟内核实了一个291位的主要候选人。 仍然希望更快一些,但这似乎是一个有希望的开始。