【藍橋杯訓練】--- 演算法訓練 Torry的困惑(基本型)
阿新 • • 發佈:2019-01-02
問題描述
Torry從小喜愛數學。一天,老師告訴他,像2、3、5、7……這樣的數叫做質數。Torry突然想到一個問題,前10、100、1000、10000……個質數的乘積是多少呢?他把這個問題告訴老師。老師愣住了,一時回答不出來。於是Torry求助於會程式設計的你,請你算出前n個質數的乘積。不過,考慮到你才接觸程式設計不久,Torry只要你算出這個數模上50000的值。
輸入格式
僅包含一個正整數n,其中n<=100000。
輸出格式
輸出一行,即前n個質數的乘積模50000的值。
樣例輸入
1
樣例輸出
2
#include<iostream> #include<cmath> using namespace std; //判斷素數 bool is_prime(int x) { int i; for(i=2;i<=sqrt((double)x);i++) if(x%i==0) return false; return true; } int main() { int n,i,cj=1,cnt; cin>>n; for(i=2,cnt=0;cnt<n;i++) { if(is_prime(i)) { cj=(cj*i)%50000; cnt++; } } cout<<cj<<endl; return 0; }