Exception in thread "main" java.lang.NumberFormatException: For input string:
题目描述
Description 阶乘是数学中的一种运算,n的阶乘表示为:n!=1*2*3*...*n。
编写程序,根据一个给出的n, 求得其阶乘值中所有数字之和P。并判断P是否为素数。
Input 键盘输入一个自然数n (1≤ n ≤ 100 )。
Output n的阶乘值的所有数字之和P,若P为素数输出“T”,否则输出“F”。
Sample Input
样例1: 5
样例2: 20
Sample Output
样例1: 3□T
样例2: 54□F
Hint □表示空格
输入
Input 键盘输入一个自然数n (1≤ n ≤ 100 )。
输出
Output n的阶乘值的所有数字之和P,若P为素数输出“T”,否则输出“F”。
样例输入
20
样例输出
54 F
代码:
为什么输20会报错,5的话就可以
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner rd=new Scanner(System.in);
Integer n=rd.nextInt();
String str=jiecheng(n).toString();
int array[]=new int[str.length()];
int sum=0;
for(int i=0;i<str.length();i++)
{
Character a=str.charAt(i);
array[i]=Integer.parseInt(a.toString());
}
for(int i=0;i<array.length;i++)
{
sum+=array[i];
}
if(sushu(sum)==true)
{
System.out.print(sum+" "+"T");
}
else
{
System.out.print(sum+" "+"F");
}
}
public static Integer jiecheng(int n)
{
int sum=1;
for(int i=1;i<=n;i++)
{
sum*=i;
}
return sum;
}
public static boolean sushu(int n)
{
if(n==1||n==0)
{
return false;
}
for(int i=2;i<=n/2;i++)
{
if(n%i==0)
{
return false;
}
}
return true;
}