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

标签 java

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/

相关文章:

java - Android - 当定义了多个按钮时,自定义对话框抛出 NullPointerException

java - 何时使用不可变对象(immutable对象) (Java)

java - 在 struts 2 中上传文件会产生扩展名为 .tmp 的文件

java - 每次我尝试执行此操作时都会失败

java - 用java写入~​​/Library/ApplicationSupport/*?

java - 我如何在 Java 中将 String 读入 inputStream?

java - 在 Java 中将 PriorityQueue 与任何比较器一起使用

java - java中的静态初始化

java - 文本比较算法或程序?

java - 为什么我的图像不会显示在我的布局中?