import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 int a = in.nextInt(); int t = 0; for (int i = 2; i <= a; i++) { if (isPrime(i)) { int c = (int)(Math.pow(2, i) - 1) * (int) (Math.pow(2, i - 1)); if (c <= a) { t++; } else { break; } } } System.out.print(t); } public static boolean isPrime(int k) { for (int i = 2; i <= Math.sqrt(k); i++) { if (k % i == 0) { return false; } } return true; } }
参考大佬的数据解题思路:https://blog.nowcoder.net/n/9d96f4ca947f493b8c7632cddfd9cb24