
题意:求出给定的前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;
}