描述
小明最近遇到了一个素数题,是给你一个正整数N(2=<N<=1000)让你求出2~N的所有素数乘积的后六位。
-
输入
-
第一行输入一个正整数T(T<=20)表示有T组数据
每组数据占一行,输入一个正整数N(2=<N<=1000)
输出
- 每组数据输出占一行,输出2~N素数乘积的后六位 样例输入
-
3 3 6 43
样例输出
-
6 30 670030
-
-
代码实现:
-
#include<stdio.h> bool is_primer(int n) { if(1 == n || 0 == n) return false; else { for(int i=2;i<=n/2;i++) { if(n%i==0) return false; } } return true; } int main() { int n,a; long sum; scanf("%d",&n); while(n--) { sum=1; scanf("%d",&a); for(int i=2;i<=a;++i) { if(is_primer(i)) { sum=sum*i; if(sum>999999) sum = sum%1000000; } } printf("%d\n",sum); } return 0; }