我非常喜欢编程,我试图将这个PHP算法转换为Java。
function isPrime($n)
{
$i = 2;
if ($n == 2) {
return true;
}
while ($i < $n) {
if ($n % $i == 0) {
return false;
}
$i++;
}
return true;
}
for ($i = 3; $i < 100; $i++) {
if (isPrime($i)) {
echo $i;
}
}
到目前为止我唯一想到的就是这个。
public class Primtal {
public static boolean isPrime(int n)
{
int i = 2;
if (n == 2) {
return true;
}
while (i < n) {
if ( n % i == 0) {
return false;
}
i++;
}
return true;
}
for(int i = 3; i < 1000; i++){
if (isPrime(i)) {
System.out.print(i);
}
}
}
我意识到这看起来很愚蠢,但我真的需要让它发挥作用。我认为问题主要在于for循环,因为我当前正在获取错误非法类型的开始。我不确定如何将其转换为Java,我将不胜感激任何帮助。
答案 0 :(得分:4)
我相信你的代码的问题是你在for
声明的中间放了一个class
循环,这是不正确的 - 它需要在某个方法中。在这种情况下将它放在main()
中似乎是合乎逻辑的,因此它在您运行程序时执行。也许是这样的:
public class Primtal
{
public static boolean isPrime(int n)
{
int i = 2;
if(n == 2)
{
return true;
}
while(i < n)
{
if(n % i == 0)
{
return false;
}
i++;
}
return true;
}
public static void main(String[] args)
{
for(int i = 3; i < 1000; i++)
{
if(isPrime(i))
{
System.out.print(i);
}
}
}
}
(注意在代码的后半部分添加了public static void main(String[] args)
。)
Oracle有关于如何构建Java程序以及该语言的其他基础知识的官方教程。您可以找到与main
方法here相关的方法。或者,从头开始,完整的教程开始here。
答案 1 :(得分:2)
你不能写for
循环
for(int i = 3; i < 1000; i++){
if (isPrime(i)) {
System.out.print(i);
}
}
直接在class
内。
我相信你想要的是拥有一个main
方法,你可以在其中for
循环
答案 2 :(得分:1)
你的for循环需要在某种方法中,所以你可以把它放在main方法中:
public class Primtal {
public static void main(String [] args)
{
for(int i = 3; i < 1000; i++)
{
if (isPrime(i)) {
System.out.print(i);
}
}
public static boolean isPrime(int n)
{
int i = 2;
if (n == 2) {
return true;
}
while (i < n) {
if ( n % i == 0) {
return false;
}
i++;
}
return true;
}
}
答案 3 :(得分:1)
问题是你的for
循环不在方法中。用main
方法将其括起来。
public static void main(String[] args) {
// Your for loop here
}
此外,将print
更改为println
,否则所有数字将在一行上连接在一起。