1 /*小明求素数积
 2 时间限制:1000 ms  |  内存限制:65535 KB
 3 难度:1
 4 描述
 5 小明最近遇到了一个素数题,是给你一个正整数N(2=<N<=1000)让你求出2~N的所有素数乘积的后六位。
 6 
 7  
 8 
 9 输入
10 第一行输入一个正整数T(T<=20)表示有T组数据
11 每组数据占一行,输入一个正整数N(2=<N<=1000)
12 输出
13 每组数据输出占一行,输出2~N素数乘积的后六位
14 样例输入
15 3
16 3
17 6
18 43
19 样例输出
20 6
21 30
22 670030
23 来源
24 [路过这]原创
25 上传者
26 路过这
27 */
28 #include<stdio.h>
29 int main()
30 {
31     int T;
32     scanf("%d",&T);
33     while(T--)
34     {
35         int N, i;
36         long long sum=1;
37         int f(int a);
38         scanf("%d",&N); 
39         for(i=2; i<=N; i++)
40         {
41             if( f(i) )
42             {
43                 if(sum>1000000)
44                 sum%=1000000;
45                 sum*=f(i);
46             }
47         }
48         printf("%lld\n",sum%1000000);
49     }
50     return 0;
51 }
52 #include<math.h>
53 int f(int a)//素数
54 {
55     int i;
56     if(a < 2)
57     return 0;
58     for(i = 2 ; i <= sqrt(a) ; ++i)
59         if(a % i == 0)
60         return 0;
61     return a;
62 }