我需要帮助完成我的java程序以进行此特定练习,请注意他们只要求在用户估算的时间间隔内找到素数,其中两个正方形的某些部分等于素数:
由于某种原因,计数器的输入打印为0。
在1640年12月25日的一封信中;伟大的数学家Pierre de Fermat写信给Marin Mersenne,他只是证明了奇数素数p可以表示为p = a2 + b2当且仅当p可表示为p = 4c + 1时。像往常一样,费马没有提供证据,据我们所知,从未写过。直到100年后,除了欧拉之外,没有人证明这个定理。为了说明,以下每个素数可以表示为两个平方的总和:5 = 22 + 12 13 = 32 + 22 17 = 42 + 12 41 = 52 + 42,而素数11,19,23和31不能表示为两个方格的总和。编写一个Java程序FermatPrimesCount来计算可以表示为给定间隔内的平方和的素数。 (不得使用数组)。
import java.util.*;
public class FermatPrimesCount
{
public static void main (String[]args)
{
int counter=0;
Scanner Range1= new Scanner (System.in);
Scanner Range2= new Scanner (System.in);
System.out.println("Please input 2 positive integers to set a range
for the program to check in: ");
int min= Range1.nextInt();
int max= Range2.nextInt();
Method(min, max, counter);
System.out.print(counter);
}
public static int Method(int min, int max, int counter)
{
{
if (i%2!=0)
{
for (int a=1; a<=9; a++)
{
for(int b=1; b<=9; b++)
{
int total=(a*a)+(b*b);
System.out.println(total);
if (total==i)
counter = counter+1;
}
}
}
}
return counter;
}
}
答案 0 :(得分:0)
问题是你的代码中的计数器不是全局的,所以你有2个计数器。一个属于main方法,另一个属于Method-method。要更改此项,您基本上可以执行counter = Method(min, max, counter);
,因为从Method返回的值也会写入计数器。