涉及到素数的判断,好久没写了,查了下定义才写出来,囧,这道题也让我郁闷了一会,最后向别人讨教才知道这个方法,唉,首先是求出前面的素数,然后再从2开始加,每次做完加法都要判断是不是大于或等于输入的数值,如果等于则计数加一,大于则退出重新从下一个素数开始计算。这个问题的关键点就是在如何于求小于某个数的素数,因为如果一个数不是素数是合数, 那么一定可以由两个自然数相乘得到, 其中一个大于或等于它的平方根,一个小于或等于它的平方根。并且成对出现。 比如18,它可以写成1*18, 2*9, 3*6。18的平方根约为4.2,其中1、2、3均小于4.2,18,9,6都大于4.2。 如果从2到某数的平方根均不能整除这个数,那么它就肯定是素数了。 有些问题看上去很复杂,举个例子也许就比较清楚了。 例如本例的18就是合数。代码如下
#include <iostream>
#include <math.h>
using namespace std;
int prime[1230];
void p()
{
int s=0;
for(int i=2;i<10000;i++)
{
bool check=true;
for(int m=2;m<=(int)sqrt((float)i);m++)
if(i%m==0)
{
check=false;
break;
}
if(check)
prime[s++]=i;
}
}
int main()
{
int a,num,count;
void p();
p();
while(cin>>a&&a!=0)
{
num=0;
for(int j=0;j<=1230;j++)
{
count=0;
for(int k=j;k<=1230;k++)
{
count+=prime[k];
if(count==a)
num++;
else if(count>a)
break;
}
}
cout<<num<<endl;
}
return 0;
}
关于素数有很多问题,以后再进行探讨……
分享到:
相关推荐
POJ 2739 10000以内的数可以被几组连续的素数相加得到
【标题】"POJ2739 - 持续素数之和" 【描述】该题目来源于北京大学的在线编程平台POJ(Problem Online Judge),编号为2739,名为"Sum of Consecutive Prime Numbers"。这是一道关于算法与数论的编程题目,要求参赛...
* 素数与整除问题。 * 进制位。 * 同余模运算:例如 poj2635、poj3292、poj1845、poj2115。 3. 计算方法: * 二分法求解单调函数相关知识:例如 poj3273、poj3258、poj1905、poj3122。 计算几何学 1. 几何...
1. **数论**:包括素数判定、欧几里得算法、扩展欧几里得算法等(poj2488, poj3083, poj3009, poj1321, poj2251)。 2. **组合数学**:如排列组合计算(poj3278, poj1426, poj3126, poj3087.poj3414)。 3. **矩阵...
例如,poj1328和poj2109就是典型的贪心问题。贪心算法的关键在于正确性证明,确保每一步的局部最优能够导向全局最优。 #### 分治法与递归 分治法是将大问题分解成若干个子问题,递归地求解这些子问题,然后将子问题...
【标签】"POJ 3126 Prime Path" 指明了问题的关键元素:POJ是一个在线编程平台,3126是这道题目的编号,Prime Path则揭示了问题的核心,即寻找素数路径。 【详细说明】在解决"Prime Path"这个问题时,我们需要掌握...
【标签】"POJ, 2262, Goldbach's Conjecture"中,“POJ”代表北京大学的在线编程竞赛平台,“2262”是这个特定问题在POJ平台上的编号,“Goldbach's Conjecture”则是该问题的主题,与哥德巴赫猜想有关。 **...
- **数论**:涵盖素数、整除、进制和同余模运算,如poj2635。 - **计算方法**:如二分法求解单调函数,如poj3273。 7. **计算几何**: - **几何公式**:用于解决几何问题。 - **叉积与点积**:辅助判断线段相交...
- POJ 1004 - The 3n + 1 problem(3n+1问题) **相关知识点**: - 排序算法的时间复杂度分析 - 查找算法的空间效率比较 - 数学算法的应用场景及实现方法 ##### 2. 数据结构 **简介**:数据结构是计算机存储、...
本解题报告针对的是POJ平台上的100道经典题目,涵盖了从基础到进阶的各种算法问题,旨在帮助程序员深化对算法的理解和应用。 1. 题目1045《Fibonacci》:这是一道关于斐波那契数列的问题,要求计算指定位置的...
1. poj_2739.c - "The Game of Life":这是一道关于生命游戏的题目,涉及到了动态模拟和数组操作。生命游戏是由John Horton Conway提出的一种细胞自动机,通过简单的规则模拟生物的生长和死亡,是理解状态转移和并行...
这个问题是关于网络连通性的。给定一个图,你需要找出最长的一条由桥(边的删除会导致图变成多个连通分量)组成的路径。解决这个问题通常采用深度优先搜索(DFS)或广度优先搜索(BFS),同时维护两个数组,分别...
【标题】"poj 130题 acm pku" 涉及的是ACM(国际大学生程序设计竞赛)中的PKU(北京大学)在线判题系统POJ(Problem Online Judge)的相关题目。ACM/ICPC(International Collegiate Programming Contest)是全球...
10. **数学基础**:如模运算、质数判断、快速幂、中国剩余定理等,这些在解决算法问题时经常用到。 通过解题报告,我们可以看到如何分析问题,设计算法,以及如何利用所学知识去解决问题。AC代码则提供了实际实现的...
- "数论"可能涉及到素数检测、最大公约数、最小公倍数等问题。 - "数据结构"可能涵盖数组、链表、栈、队列、树、图、哈希表等多种结构。 对于初学者来说,研究这些源代码可以提升编程技能,理解算法思想,并逐步...
9. **数论**:包括素数检测、同余方程求解、模幂运算等,涉及到高等数学中的数论概念。 了解了这些分类后,我们可以根据自身的算法基础和兴趣选择相应的题目进行训练。对于每个类别,深入理解和熟练应用基础算法是...
【标签】"POJ 3292 Semi-prime H-numbers"是该问题的标签,它强调了问题来源(POJ平台)、问题编号(3292)以及问题的核心概念——半素数和H-Numbers。 半素数是指由两个不同的质数相乘得到的自然数,例如6(2×3)...
3. **数学问题**:数论(最大公约数、最小公倍数、质数判断等)、组合数学(排列组合、鸽巢原理等)、几何(平面几何、三维几何等)。 4. **字符串处理**:模式匹配(KMP、Boyer-Moore等)、字符串操作(反转、子串...
- **题目4**:如POJ1141,可能要求解决与数学相关的计算问题,如质数判断、组合数学等。 - **题目5**:如POJ1080,可能涉及到图论的基本概念,如邻接矩阵、深度优先搜索(DFS)等。 - **题目6**:如POJ1221,可能...
- **内容**: 包括素数判定、欧拉函数等问题。 - **示例题目**: poj2635, poj3292, poj1845, poj2115 - **知识点**: - **素数判定**:判断一个数是否为素数。 - **欧拉函数**:小于等于n的正整数中与n互质的数的...