处女座的测验(一)
链接:https://ac.nowcoder.com/acm/contest/327/H
题目描述
处女座进行了一场c语言的考试,要求很简单,输出2000个正整数,并且满足以下条件:
1.任意两个数互质
2.任意两个数x,y,满足,其中为n的因子的个数
举例:6的因子有1,2,3,6,所以τ(6)=4τ(6)=4
输入描述:
本题没有输入
输出描述:
2000行,每行一个正整数
输出的每个整数都必须在1-4*108之间
如果有多组答案,输出任意一组即可。
题解:筛出前4000个素数,第一个和第4000个组合,第二个和第3999个组合……以此类推。
1 import java.util.Scanner;
2
3 public class Main {
4 static final int maxn = 1000005;
5 static long [] prime = new long [maxn];
6 static int [] book = new int [maxn];
7 static int cnt = 0;
8 static void getprime() {
9 for(int i=2;i<maxn;i++) {
10 if(book[i]==0) {
11 prime[cnt++] = (long)i;
12 if(cnt>4000)
13 break;
14 for(int j=i+i;j<maxn;j+=i) {
15 book[j] = 1;
16 }
17 }
18 }
19 }
20 public static void main(String[] args) {
21 Scanner cin = new Scanner(System.in);
22 getprime();
23
24 for(int i=0;i<cnt/2;i++) {
25 System.out.println(prime[i]*prime[cnt-1-i]);
26 }
27 }
28 }