HDOJ2138我过不去了,我脚的我代码没问题啊!我一点都没看出来哪有问题
import java.util.Scanner;
import java.lang.Math;
public class A2138 {
public static void main(String[] args)
{
Scanner in=new Scanner(System.in);
int t=in.nextInt();
int count=0;
while(t-->0)
{
int n=in.nextInt();
if(Prime(n))
{
count++;
}
}
System.out.println(count);
}
public static boolean Prime(int n)
{
for(int i=2;i<=Math.sqrt(n);i++)
{
if(n%i==0)
{
return false;
}
}
return true;
}
}
注意每次输入的值,你是什么问题 出不去循环还是出循环后输出的值不对
第一次输入的值决定了你往下要再输入几次值 每一次值对应一个n,你可以把代码加上一句话更清晰一点 如下代码:
import java.util.Scanner;
import java.lang.Math;
public class A2138 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("请输入循环次数:");
int t = in.nextInt();
int count = 0, count1 = 1;
while (t-- > 0) {
System.out.println("请输入第" + count1++ + "次所需判断值:");
int n = in.nextInt();
if (Prime(n)) {
count++;
}
}
System.out.println(count);
}
public static boolean Prime(int n) {
for (int i = 2; i <= Math.sqrt(n); i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
}