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

Java 编写一个程序来查找所有小于1000的孪生素数。按如下方式显示输出:(3,5)(5,7),java,primes,Java,Primes,我目前正在尝试编写一个程序来查找 所有孪生素数都小于1000。然后按如下3、55、7…等显示输出 到目前为止,我只有找到素数的代码,我不确定我应该做什么,不仅要找到双素数,而且要如何正确地打印它们。非常感谢您的建议,并提前向您表示衷心的感谢!这是到目前为止我的代码 int a =0; int b =0; String d = ""; for (a = 1; a <= 100; a++) { int counter = 0;

我目前正在尝试编写一个程序来查找 所有孪生素数都小于1000。然后按如下3、55、7…等显示输出

到目前为止,我只有找到素数的代码,我不确定我应该做什么,不仅要找到双素数,而且要如何正确地打印它们。非常感谢您的建议,并提前向您表示衷心的感谢!这是到目前为止我的代码

   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 + " ";
       // ..
退房。它要求输入,但在main内将p改为1,q改为100。然后拆下线号30-33。它还可以根据需要打印出双素数。

使用定义

双素数是一对既为素数又为素数的数 他们的差距是2

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

确定如此小区间的素数的一个简单方法是埃拉托斯烯筛。它在logn操作中运行,需要内存


但是,即使您不知道这种方法,您也可能成功地强行解决这个问题,例如n=1000,一个简单的除法应该在大约^2次运算中显示[1,n]中的所有素数。

//概念是,除了2和3之外,每个素数都是6n-1或6n+1形式

#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;
}

这是我用蓝色java编写的twin prime代码

但是如何以正确的顺序打印,并且打印的数量不超过100

public class twin_prime
{
    public static void main(int n)
    {
        int i,j;
        int p=n;
        int q=n+2;
        int c=0;
        int co=0;
        int f=q;
        System.out.println(" the no you had input is "+n);
        System.out.println("the second number will be taken at a difference of 2 ");
        System.out.println("the second number is :"+q);
        for(i=1;i<=n;i++)
        {
            if(p%i==0)
            {
                c=c+1;
            }
        }
        if(c==2)
        {
            System.out.println("no. is prime");
        }
        for(j=1;j<=q;j++)
        {
            if(f%j==0)
            {
                co=co+1;
            }
        }
        if(co==2)
        {
            System.out.println("no. is twin prime");
        }
    }
}

我不知道这个代码能解决你的问题。如果我理解你的任务,那么这个代码可以帮助你。很抱歉我的英语不太好!我希望我能帮助你

公共类双素数{ 公共静态无效字符串[]args{ int ct=0,n=0,i=1,j=1,db=0; int[]数组=新int[25];//1在100之间有25个片段 System.out.PrintLn双素数对:;
你真的不知道吗?你想了多久了?如果你以后需要信息,你需要保存它。哇,太巧了,这正是我在高中计算机科学课上得到的作业。我不是高中生,已经多年没有了,但感谢你的负面反馈。我希望你喜欢w耽误您的时间,因为您刚才就是这么做的。另外,谢谢Thorbjorn。我是java新手,所以我正在努力掌握基本知识,并感谢您的帮助。这对我来说最有意义,我将尝试用我自己的方式编写它,但我很难弄清楚如何只提取双素数。谢谢!链接停止工作谢谢你的帮助,你的解释有点让我不知所措。但希望我能更理解这一点,因为我有两种不同的方法。再次感谢,顺便说一句,这应该是java。