小明求素数积
时间限制:
1000 ms | 内存限制:
65535 KB
难度:
1
-
描述
-
小明最近遇到了一个素数题,是给你一个正整数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> #include<math.h> int main() { int T,N; int i; long long sum; int priem(int x); scanf("%d",&T); while(T--) { sum=1; scanf("%d",&N); for(i=2;i<=N;i++) { if(priem(i)) sum=sum*i%1000000; } printf("%lld\n",sum); } return 0; } int priem(int x) { int i,flag=1; for(i=2;i<=sqrt(x);i++) if(x%i==0) flag=0; return flag; }
//第一次将sum=sum*i%1000000写成了sum=sum*i%1000000,总是不对
//向我们的粗心致敬!!!
-
第一行输入一个正整数T(T<=20)表示有T组数据