Java 性感素描专用印花和理货
好的,我的代码很好,但是我需要它来显示匹配的对和有多少对,而不是仅仅显示素数,我知道这可能需要进入过程筛选,我要求和,我需要一个计数系统,但我不知道如何将它们成对打印出来 这就是他们应该如何打印出来的 以下是1到42之间的所有性感素数对,每条线一对:Java 性感素描专用印花和理货,java,Java,好的,我的代码很好,但是我需要它来显示匹配的对和有多少对,而不是仅仅显示素数,我知道这可能需要进入过程筛选,我要求和,我需要一个计数系统,但我不知道如何将它们成对打印出来 这就是他们应该如何打印出来的 以下是1到42之间的所有性感素数对,每条线一对: 5 and 11 7 and 13 11 and 17 13 and 19 17 and 23 23 and 29 31 and 37 展出了7对性感的黄金组合 import java.util.Scanner; public c
5 and 11
7 and 13
11 and 17
13 and 19
17 and 23
23 and 29
31 and 37
展出了7对性感的黄金组合
import java.util.Scanner;
public class aleko_Sieve
{
Scanner in = new Scanner(System.in);
boolean primes [] = new boolean [50001];
int upperbnd;
int lowerbnd;
public aleko_Sieve ()
{
primes[0] = false;
primes[1] = false;
for (int i = 2; i < primes.length; i++)
{
primes[i] = true;
}
getLower();
getUpper();
processSieve();
showPrimes();
}
public void processSieve()
{
for (int i =2; (i * i) <= upperbnd; i++)
{
for (int j = (i * i); j <= upperbnd; j = j + i)
{
primes[j] = false;
}
}
}
public void getLower()
{
int x=0;
do
{
System.out.println("Please enter a lower boundary ( 1 - 50000): ");
lowerbnd = in.nextInt();
if (( lowerbnd < 1) || (lowerbnd > 50000))
{
System.out.println("Please enter a valid number");
x = 1;
}
if (( lowerbnd > 1) || (lowerbnd < 50000))
{
x = 0;
}
}
while ( x == 1);
}
public void getUpper()
{
int x=0;
do
{
System.out.println("Please enter a upper boundary ( 1 - 50000): ");
upperbnd = in.nextInt();
if (( upperbnd < 1) || (upperbnd > 50000))
{
System.out.println("Please enter a valid number");
x = 1;
}
if (( upperbnd > 1) || (upperbnd < 50000))
{
x = 0;
}
}
while ( x == 1);
}
public void showPrimes()
{
for (int i = 2; i < upperbnd; i++)
{
if (primes[i] == true)
{
System.out.println( i + " is prime");
}
}
}
public static void main (String args[])
{
aleko_Sieve p = new aleko_Sieve();
}
}
import java.util.Scanner;
公共级aleko_筛
{
扫描仪输入=新扫描仪(系统输入);
布尔素数[]=新布尔值[50001];
int-upperbnd;
内特洛本德;
公共aleko_筛()
{
素数[0]=假;
素数[1]=假;
for(int i=2;i50000))
{
System.out.println(“请输入有效数字”);
x=1;
}
如果((上限bnd>1)| |(上限bnd<50000))
{
x=0;
}
}
而(x==1);
}
公众假期
{
对于(int i=2;i
当您要打印素数时,请查看比您刚才找到的当前索引低6的索引是否为素数,然后将它们都打印出来
//if found prime
if (i > 6)
{
if (prime[i-7]==true)
//print both primes
}
您可以按如下方式在素数数组上循环:
public void showSexy()
{
int countPairs = 0;
System.out.println("Here are all of the sexy prime pairs in the range 1 to 42, one pair per line:");
for (int i = 2; i < upperbnd - 6; i++)
{
if (primes[i] == true && primes[i+6]== true)
{
countPairs++;
System.out.println( i + " and " + (i+6));
}
}
System.out.println("There were " + countPairs + " sexy prime pairs displayed");
}
public void showSexy()
{
int countPairs=0;
System.out.println(“这里是范围在1到42之间的所有性感素数对,每行一对:”);
对于(int i=2;i
有几件事需要注意:
upperbnd-6
,因为否则您无法找到另一个大于6的素数countPairs
变量,该变量在每次找到一对时递增true
/false
的数组,因此很容易找到它们)数组大小是否需要根据他们是否输入1-50000而改变?哦,你刚才说42,所以我假设你要寻找的性感素数很少。您只需在素数数组中搜索当前素数-6的值。但这有点难,而且需要时间。另外,我重新阅读了代码并稍微编辑了我的答案;抱歉-尝试
System.out.println(i+”和“+(i+6))代码>。来晚了,还没戴眼镜。。。