蓝桥杯前n个质数的乘积
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了蓝桥杯前n个质数的乘积相关的知识,希望对你有一定的参考价值。
[题目]
Torry从小喜爱数学。一天,老师告诉他,像2、3、5、7……这样的数叫做质数。Torry突然想到一个问题,前10、100、1000、10000……个质数的乘积是多少呢?他把这个问题告诉老师。老师愣住了,一时回答不出来。于是Torry求助于会编程的你,请你算出前n个质数的乘积。不过,考虑到你才接触编程不久,Torry只要你算出这个数模上50000的值。
[思路]
1、用一个循环来判断是否是质数,如果是,就累积相乘,直到是第n个质数
[代码]
1 #include <iostream> 2 using namespace std; 3 4 5 long isPrime(int N); 6 7 int main(void){ 8 int N; // 第n个质数 9 10 cin >> N; 11 cout << isPrime(N); 12 13 14 return 0; 15 } 16 17 long isPrime(int N){ 18 int i, j, n = 0; 19 long p = 1; 20 21 22 for (i = 2; ; i++){ 23 for (j = 2; j < i; j++){ 24 if (i % j == 0){ 25 // 说明是合数, 跳出本for循环,开始判断下一个数 26 break; 27 } 28 } 29 if (j == i){ 30 n++; 31 p = p * i; 32 if (n == N) 33 break; 34 } 35 36 } 37 p %= 50000; 38 }
[总结]
1、判断是否是质数的for循环一定要会;
2、累乘时变量的初始值要设置成1。
以上是关于蓝桥杯前n个质数的乘积的主要内容,如果未能解决你的问题,请参考以下文章