【蓝桥杯】前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。

时间: 2024-11-13 12:59:28

【蓝桥杯】前n个质数的乘积的相关文章

蓝桥杯练习系统算法提高—最大乘积

最大乘积  问题描述 对于n个数,从中取出m个数,如何取使得这m个数的乘积最大呢? 输入格式 第一行一个数表示数据组数 每组输入数据共2行: 第1行给出总共的数字的个数n和要取的数的个数m,1<=n<=m<=15, 第2行依次给出这n个数,其中每个数字的范围满足:a[i]的绝对值小于等于4. 输出格式 每组数据输出1行,为最大的乘积. 样例输入 1 5 5 1 2 3 4 2 样例输出 48 思路:将输入的数据存入数组然后做升序排列.然后开始从末端循环,每次循环都求出正序前两个数字的积和

蓝桥杯算法训练&lt;二&gt;

一.最小乘积(基本型)[这个题需要认真阅读试题,内容量较大,刚开始的时候,由于练习系统上给出的输入输出的格式有问题,没看懂,最后在MikCu的博客上看到了正确的格式,参考了代码,最终得到正确的结果.为了让结果最小,可以先分别对两组数进行排序,然后对其中的一组数据逆序,逆序后,把两组数据最大的与最小的相乘,最后求得的和最小!] 问题描述 给两组数,各n个. 请调整每组数的排列顺序,使得两组数据相同下标元素对应相乘,然后相加的和最小.要求程序输出这个最小值. 例如两组数分别为:1 3 -5和-2 4

Torry的困惑(基本型) ---蓝桥杯

问题描述 Torry从小喜爱数学.一天,老师告诉他,像2.3.5.7--这样的数叫做质数.Torry突然想到一个问题,前10.100.1000.10000--个质数的乘积是多少呢?他把这个问题告诉老师.老师愣住了,一时回答不出来.于是Torry求助于会编程的你,请你算出前n个质数的乘积.不过,考虑到你才接触编程不久,Torry只要你算出这个数模上50000的值. 输入格式 仅包含一个正整数n,其中n<=100000. 输出格式 输出一行,即前n个质数的乘积模50000的值. 样例输入 1 样例输

蓝桥杯 算法训练 Torry的困惑(基本型)(水题,筛法求素数)

算法训练 Torry的困惑(基本型) 时间限制:1.0s   内存限制:512.0MB 问题描述 Torry从小喜爱数学.一天,老师告诉他,像2.3.5.7--这样的数叫做质数.Torry突然想到一个问题,前10.100.1000.10000--个质数的乘积是多少呢?他把这个问题告诉老师.老师愣住了,一时回答不出来.于是Torry求助于会编程的你,请你算出前n个质数的乘积.不过,考虑到你才接触编程不久,Torry只要你算出这个数模上50000的值. 输入格式 仅包含一个正整数n,其中n<=100

蓝桥杯 乘积最大

算法训练 乘积最大 时间限制:1.0s   内存限制:256.0MB 锦囊1 动态规划. 锦囊2 用F[i,j]表示前i位分j个部分最大值是多少,则F[i,j]=F[k,j-1]*V(k+1,i).其中V(k+1,i)表示从第k+1位到第i位的数. 问题描述 今年是国际数学联盟确定的"2000--世界数学年",又恰逢我国著名数学家华罗庚先生诞辰90周年.在华罗庚先生的家乡江苏金坛,组织了一场别开生面的数学智力竞赛的活动,你的一个好朋友XZ也有幸得以参加.活动中,主持人给所有参加活动的选

蓝桥杯——算法训练之乘积最大

问题描述 今年是国际数学联盟确定的"2000--世界数学年",又恰逢我国著名数学家华罗庚先生诞辰90周年.在华罗庚先生的家乡江苏金坛,组织了一场别开生面的数学智力竞赛的活动,你的一个好朋友XZ也有幸得以参加.活动中,主持人给所有参加活动的选手出了这样一道题目: 设有一个长度为N的数字串,要求选手使用K个乘号将它分成K+1个部分,找出一种分法,使得这K+1个部分的乘积能够为最大. 同时,为了帮助选手能够正确理解题意,主持人还举了如下的一个例子: 有一个数字串:312, 当N=3,K=1时

蓝桥杯 ALGO-104 阿尔法乘积(数学)

[思路]:水题. [AC代码]:PS.题目中说测试数据小于6000000,但是样例又给了个超int的..果然蓝桥杯是做过的最差的OJ..各种问题. #include <iostream> #include <algorithm> #include <string> #include <cstdio> #include <cstring> using namespace std; int alpha(long long int n) { int m

蓝桥杯习题

这个月我都不知道忙什么了,反正蓝桥杯就这样过去了,把自己的整理的习题发上去吧. 问题描述 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 输入的第一行为一个正整数n (1<=n<=10). 接下来n行,每行一个由0~9.大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000. 输出格式 输出n行,每行为输入对应的八进制正整数. 注意 输入的十六进制数不会有前导0,比如012A. 输出的八进制数也不能有前导0. 样例输入 2 39 123ABC

算法-蓝桥杯习题(六)

蓝桥杯习题 蓝桥杯练习系统习题加答案,总共分为6部分,90%习题使用C语言解答,部分使用C++或者Java.大部分习题为搜索参考或者别人提供所得,不足之处在所难免,恳请批评指正(预计200多题,习题仅供学习交流) 目录 算法训练(详见 算法-蓝桥杯习题(一))Go 算法训练(详见 算法-蓝桥杯习题(二))Go 算法提高(waiting...) 历届试题(详见 算法-蓝桥杯习题(六))Go 历届试题(详见 算法-蓝桥杯习题(七))Go 蓝桥杯练习系统评测数据 链接: http://pan.baid