
題意:求出給定的前n個的素數乘積,最後結果%50000輸出
思路:正常的求素數的方法,循環判斷是否到達了n個素數以及是否是素數。
代碼:
#include <iostream>
using namespace std;
long long ans = 1, n, cnt = 0;
bool isPrime(int num) {//判斷是否是一個素數
if (num <= 1)return false;
for (int i = 2; i*i <= num; i++) {
if (num%i == 0) {
return false;
}
}
return true;
}
int main(int argc, char** argv) {
cin >> n;
for (int i = 2; cnt < n; i++) {
if (cnt < n&&isPrime(i)) {
ans *= i;
cnt++;
}
}
printf("%I64d\n", ans % 50000);
return 0;
}