为什么我的程序不能正确运行?
问题描述:
为我的学校项目我必须创建一个程序,根据用户(老师)想要的完美数字输出完美的数字。用户可以从1-4中选择任何数字,但应显示用户选择的许多号码。这是我目前的代码。请忽略sumupTo,factorial,isprime和testGoldbach方法,请仅查看完美数字方法/代码。为什么我的程序不能正确运行?
import java.util.Scanner;
public class MyMathB
{
public static int sumUpTo(int n)
{
int sum = 0;
for (int k = 1; k <= n; k++)
sum += k;
return sum;
}
public static long factorial(int n)
{
long f = 1;
for (int k = 2; k <= n; k++)
f *= k;
return f;
}
public static boolean isPrime(int n)
{
if (n <= 1)
return false;
int m = 2;
while (m * m <= n)
{
if (n % m == 0)
return false;
m++;
}
return true;
}
public static void PerfectNumbers(int number)
{
System.out.println("How many perfect numbers would you like to see? Please enter an integer from 1 to 4");
Scanner s = new Scanner(System.in);
int numbersToSee = s.nextInt();
int counts = 0;
for(counts = 0; counts <= numbersToSee; counts++)
{
for (int n = 5; n <= 10000; n++)
{
int temp = 0;
for(int i = 1; i <= number/2; i++)
{
if (number % i == 0)
{
temp += i;
}
if (temp == number)
{
System.out.println(number);
}
}
}
}
}
public static boolean testGoldbach(int bigNum)
{
for (int n = 6; n <= bigNum; n += 2)
{
boolean found2primes = false;
for (int p = 3; p <= n/2; p += 2)
{
if (isPrime(p) && isPrime(n - p))
found2primes = true;
}
if (!found2primes)
{
System.out.println(n + " is not a sum of two primes!");
return false;
}
}
return true;
}
public static void main(String[] args)
{
Scanner kb = new Scanner(System.in);
int n;
do
{
System.out.print("Enter an integer from 4 to 20: ");
n = kb.nextInt();
} while (n < 4 || n > 20);
kb.close();
System.out.println();
System.out.println("1 + ... + " + n + " = " + sumUpTo(n));
System.out.println(n + "! = " + factorial(n));
System.out.println("Primes: ");
for (int k = 1; k <= n; k++)
if (isPrime(k))
System.out.print(k + " ");
System.out.println();
System.out.println("Goldbach conjecture up to " + n + ": " + testGoldbach(n));
}
}
答
你没有在你的方法中声明变量“number”。
编辑:你没有SET变量数到任何东西,我misworded我的最后一句话。
+0
如果您的意思是'PerfectNumbers'方法,'number'是一个参数;它将被设置为当方法被调用时传递的任何参数。唯一的问题是:没有任何事情叫它。 –
对不起,它的“为什么我的程序不能正常运行?” –
编辑标题,请勿将其添加为评论。并告诉我们会发生什么和预期的事情。 – AntonH
*“请忽略sumupTo,factorial,isprime和testGoldbach方法”*如果那些确实与再现问题行为无关,那么您应该从示例中删除它们。请参阅http://*.com/help/mcve。 – Radiodef