NYOJ 225 小明求素数积

来源:互联网 发布:台湾清华大学知乎 编辑:程序博客网 时间:2024/05/21 10:39

小明求素数积

时间限制:1000 ms  |  内存限制:65535 KB
难度:1
描述

小明最近遇到了一个素数题,是给你一个正整数N(2=<N<=1000)让你求出2~N的所有素数乘积的后六位。

 

 

输入
第一行输入一个正整数T(T<=20)表示有T组数据
每组数据占一行,输入一个正整数N(2=<N<=1000)
输出
每组数据输出占一行,输出2~N素数乘积的后六位
样例输入
33643
样例输出
630670030
 
代码:
 #include<stdlib.h>#include<stdio.h>#include<string.h>#include<math.h>#define MAX 1010bool isPrime[MAX];int main(){    memset(isPrime,true,sizeof(isPrime));    for(int i=2;i<MAX/2;i++){          if(isPrime[i]){                                     for(int j=i<<1;j<MAX;j+=i){                isPrime[j]=false;                    }                         }                        }       int t, n;    scanf("%d",&t);        while(t--){         scanf("%d",&n);         int ans=1;                 for(int i=2;i<=n;i++){                               if(isPrime[i]) {                                            ans*=i;                ans%=1000000;               }                }           printf("%d\n",ans);                                                                                 }         return 0;    }