joj2573: Product of two primes

 2573: Product of two primes


Result TIME Limit MEMORY Limit Run Times AC Times JUDGE
3s 65536K 929 287 Standard

输出所有在10000 – 20000之间,恰好可以分解为两个素数乘积的整数。将这些数从小到大输出。

Input

Output

每一行输出一个符合要求的数,按照从小到大排列。下面是输出的头和尾,中间部分需自行计算

10001

...

...

...

19999

 

Problem Source: skywind

 


This problem is used for contest: 131 


Submit / Problem List / Status / Discuss

 
枚举+ 埃拉托斯特尼筛法
先用筛法把素数找够(不用找太多,注意到两个因子相乘小于20000就行了),然后枚举。
 1 #include <stdio.h>

 2 

 3 int prime[20005];

 4 int a[20005];

 5 

 6 int main()

 7 {

 8     int i, j;

 9     

10     for (i=2; i<150; ++i)

11     {

12         for (j=i; j*i<20005; ++j)

13         {

14             prime[i*j] = 1;

15         }

16     }

17     

18     for (i=2; i<20005; ++i)

19     {

20         for (j=i; j*i<20005; ++j)

21         {

22             if (!prime[i] && !prime[j])

23             {

24                 a[i*j] = 1;

25             }

26         }

27     }

28     

29     for (i=10000; i<20000; ++i)

30     {

31         if (a[i])

32         {

33             printf("%d\n", i);

34         }

35     }

36     

37     

38     return 0;

39 }

 

你可能感兴趣的:(Prim)