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/