首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编写一个程序来查找所有小于1,000的孪生素数。显示输出如下:(3,5) (5,7)

编写一个程序来查找所有小于1,000的孪生素数。显示输出如下:(3,5) (5,7)
EN

Stack Overflow用户
提问于 2015-09-27 22:41:52
回答 4查看 3.8K关注 0票数 0

我目前正试图编写一个程序来查找所有小于1,000的孪生素数。然后显示输出如下(3,5)(5,7).(等)

到目前为止,我只有找到素数的代码,我不知道应该怎么做才能找到孪生素数,也不知道如何正确地打印它们。任何建议都是非常感谢的,并提前向您表示感谢!到目前为止这是我的密码。

代码语言:javascript
复制
   int a =0;
   int b =0;
   String d = "";
   for (a = 1; a <= 100; a++) {               
     int counter = 0;     
     for (b = a; b >= 1; b--) {
       if (a % b == 0) {
         counter = counter + 1;
       }
     }
     if (counter == 2) {
       w = w + a + " ";
       // ..
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-09-27 23:11:06

看看。它要求输入,但是将p更改为1,将q更改为100 (在main中)。然后删除行号30-33。它也会打印出你想要的孪生素数。

票数 0
EN

Stack Overflow用户

发布于 2015-09-27 23:31:39

使用定义

孪生素数是一对都是素数的数,它们的差是2。

问题主要是确定1到1000之间的所有素数,然后寻找上述意义上的双胞胎。

确定如此小间隔的素数的一个简单方法是Eratosthenes的筛子。它在O(n日志日志n)操作中运行,需要O(n)内存。

但是,即使你不知道这个方法,你也可能成功地强迫这个n= 1000的问题实例,一个简单的除法应该能在大约O(n^2)运算中显示1,n中的所有素数。

票数 0
EN

Stack Overflow用户

发布于 2015-09-29 17:33:41

//概念是每个素数都是形式( 6n-1 )或( 6n+1 )形式,但2和3除外。

代码语言:javascript
复制
#include<iostream>
using namespace std; 
int fact(unsigned long long int );
int main(){
unsigned long long int n;
cout<<"Enter the number upto which you want prime numbers\n";
cin>>n;
cout<<"List of prime number is as follows"<<endl;
cout<<"(3,5)";

for(unsigned long long int i=5;i<=n;i+=6){  
    int d,e;
    d=fact(i);
    e=fact((i+2));
    if(d==1 && e==1)
        cout<<",("<<i<<","<<(i+2)<<")";
 } 
cout<<"\n";
return 0;
}
int fact(unsigned long long int x){
    if(x%2==0 || x%3==0)
        return 0;
    for(unsigned long long int j=5;j*j<=x;j+=6)         
    {   
        if(x%j==0 || x%(j+2)==0)
            return 0;
    }
return 1;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32813589

复制
相关文章

相似问题

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