用例通过率是40%是怎么回事啊?

如果一个数字能表示为p^q(^表示幂运算)且p为一个素数,q为大于1的正整数就称这个数叫做超级素数幂。现在给出一个正整数n,如果n是一个超级素数幂需要找出对应的p,q。 
输入描述:
输入一个正整数n(2 ≤ n ≤ 10^18)


输出描述:
如果n是一个超级素数幂则输出p,q,以空格分隔,行末无空格。
如果n不是超级素数幂,则输出No


这是题目要求
import java.util.ArrayList;
import java.util.Scanner;

public class Main {

public static void main(String[] args) {
int n=typein();
if (n<2 || n>Math.pow(10, 18)) {
System.out.println("请重新输入");
n = typein();
}
int sqrt=(int)(Math.sqrt(n));
ArrayList<Integer> arrayList =new ArrayList<>();
for (int i = 2; i <= sqrt; i++) {
if (i==2) {
arrayList.add(i);
continue;
}
int j=0;
for (j = 2; j <i; j++) {
if (i%j==0) {
break;
}
}
if (j==i) {
arrayList.add(i);
}

}
boolean b=false;
for(int i=0;i<arrayList.size();i++){
int a=arrayList.get(i);
   double e=(Math.log(n)/Math.log(a));
if ((e-(int)e) ==0.00) {
System.out.println(arrayList.get(i)+" "+(int)e);
b=true;
}
}
if (!b) {
System.out.println("No");
}
  }
static int typein(){
Scanner reader = new Scanner(System.in);
int n=reader.nextInt();
return n;
}
}
这是我的代码,有什么问题啊,我怎么样才能知道没有通过的用例都有哪些???
全部评论
同问,,,下午答题通过率只有85%
点赞 回复 分享
发布于 2020-08-11 16:44

相关推荐

点赞 评论 收藏
分享
bLanK的小号:建议自己写一个比较新颖的项目,比如思维导图,在线文档,仿造postman,仿造一个组件库
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务