gpt4 book ai didi

java - 在java中添加数字中存在的所有质数数字。这段代码有什么错误?

转载 作者:行者123 更新时间:2023-12-02 05:04:37 24 4
gpt4 key购买 nike

public static void main(String args[]){  

Scanner sc = new Scanner(System.in) ;

System.out.print("Enter String: ");
String str = sc.nextLine();
int n=str.length();
int count=0;
char[] strArray = str.toCharArray();
for(int i=0;i<n;i++)
{
if(isPrime(strArray[i]))

{
count=count+strArray[i];
}
}
System.out.println (count);

}



private static boolean isPrime(int num)
{
if(num==1 ||(num!=2 && num%2==0))
{
return false;
}
else
{
for(int i=2;i<num/2;i++)
{
if(num%i==0)
return false;
}

}
return true;
}

我正在将字符串转换为字符数组以检查素数并调用该函数它没有给出正确的输出。输入:123输出:5我在这里没有收到错误。这段代码有什么错误?

最佳答案

当您将 strArray[i] 传递给 isPrime 时,如果您传递“3”,则不会检查数字 3 是否为素数,而是检查是否字符“3”的数值是素数。

假设您的输入仅包含数字,请尝试将代码更改为:

for(int i=0;i<n;i++)
{
if(isPrime(strArray[i]-'0'))

{
count=count+strArray[i]-'0';
}
}

关于java - 在java中添加数字中存在的所有质数数字。这段代码有什么错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27900648/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com