已修改完的版本,无误
import java.util.Scanner;
public class a {
// 【样例输出】
// 10
// 【样例说明】
// 包含 2、6、4、10、20 的最短的等差数列是 2、4、6、8、10、12、14、16、
// 18、20。
// 试题 I: 等差数列
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
long n=in.nextLong();
long c=0,j=0;
if(f(n)) {c++;}
for(long i=2;i*i<=n;i++) {
if(n%i==0) {
if(f(i))
c++;
j=n/i;
if(f(j))c++;
}
}
System.out.println(c);
in.close();
}
public static boolean f(long n) {
for(long i=2;i*i<=n;i++) {
if(n%i==0) return false;
}
return true;
}
}