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 }