題目鏈接
問題描述
Torry從小喜愛數學,一天,老師告訴他,像2、3、5、7……這樣的數叫做質數,Torry突然想到一個問題,前10、100、1000、10000……個質數的乘積是多少呢?他把這個問題告訴老師,老師愣住了,一時回答不出來,于是Torry求助于會編程的你,請你算出前n個質數的乘積,不過,考慮到你才接觸編程不久,Torry只要你算出這個數模上50000的值,
輸入格式
僅包含一個正整數n,其中n<=100000,
輸出格式
輸出一行,即前n個質數的乘積模50000的值,
樣例輸入
1
樣例輸出
2
代碼:
#include<bits/stdc++.h>
using namespace std;
bool is_prime(int n)
{
for(int i = 2; i * i <= n; i++)
if(n % i == 0)
return false;
return true;
}
long long prime[100010];
const int mod = 50000;
int main()
{
int n;
cin >> n;
memset(prime, 0, sizeof(prime));
long long ans = 1, flag = 0;
for(int i = 2; flag < n; i++)
if(is_prime(i)) //如果i是質數
prime[flag++] = i;
for(int i = 0; i < flag; i++)
{
ans *= prime[i];
ans %= mod;
}
cout << ans << endl;
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/259030.html
標籤:其他
上一篇:NeHe-OpenGL-Qt5-Lesson06-注釋與學習-TextureMapping
下一篇:用C語言實作LDPC的快速編碼
