java - 将素数添加到 X 的代码可以正常工作,但同时适用于多个测试用例,在按 Enter 之前不会执行最后一个用例
问题描述
我在 t 测试用例的代码开头给出了所有输入。它为 t-1 测试用例提供了正确的输出,但直到我按下回车键才给出最后一个测试用例的输出。因此,它没有被在线门户网站接受。
我已经在 Eclipse 中尝试了发现此问题的代码。我尝试使用 sc.next() 而不是 sc.nextInt() 但问题仍然存在。
import java.util.*;
import java.lang.*;
import java.io.*;
class GFG {
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
while(t-- > 0){
int x = sc.nextInt();
new GFG().findPrimesAddingToX(x);
}
}
private void findPrimesAddingToX(int x){
int p1 = 2;
int p2 = 0;
p2 = findPrime2(x);
while(p1+p2 != x && p1 < p2){
if(p1+p2 < x)
p1 = findPrime1(p1);
else if(p1+p2 > x)
p2 = findPrime2(p2);
}
if(p1 + p2 == x)
System.out.print("\n"+p1+" "+p2);
}
private int findPrime1(int p){
boolean flag = false;
while(!flag){
flag = true;
p++;
for(int i = 2; i < Math.sqrt(p); i++){
if(p % i == 0){
flag = false;
break;
}
}
if(flag){
return p;
}
}
return 0;
}
private int findPrime2(int p){
boolean flag = false;
while(!flag){
flag = true;
p--;
for(int i = 2; i < Math.sqrt(p); i++){
if(p % i == 0){
flag = false;
break;
}
}
if(flag){
return p;
}
}
return 0;
}
}
解决方案
推荐阅读
- xml - 如何为XSD中的不同元素指定具有相同名称但不同值的元素?
- r - 如何使用 DT 包编辑和保存对 Shiny dataTable 所做的更改
- c - 如何解决:用户输入的字符串不能作为函数正常工作
- reactjs - 如何在 3js 中对 GLTF 元素进行分组并拖放
- javascript - 如何在某个值处改变样式?反应
- java - DAML 使用 Java Binding 流式传输所有活动合约 - LedgerView
- python - 如何通过使用 python 脚本单击电子邮件中的链接来下载文件
- python - jupyter notebook 上的错误说“500:非法多字节序列”
- java - 程序类型已经存在:org.json.CDL
- c# - 异步循环中的异步函数