题目链接:http://acm.swust.edu.cn/problem/610/

Time limit(ms): 1000      Memory limit(kb): 65535
 
Description
马上就是新年了,在这里提前祝大家新年快乐,首先送大家一个吉祥数——1898。相信意思大家都明白吧,接着就请大家根据下面的提示来找出一些和我们这个吉祥数相关的一些数吧。 
请将不大于2008的所有素数从小到大排成第一行,第二行上的每个数都等于它头上的素数与它右肩上的素数之差。编程求出:第二行数中是否存在这样的若干个连续的整数,它们的和恰好是1898?假好存在的话,又有几种这样的情况?例如: 
第一行:2 3 5 7 11 13 17......1979 1987 1993 
第二行:1 2 2 4 2 4...... 8 6

 
Input
没有输入

 
Output
输出有多个结果,输出所有满足条件的结果,要求只输出每个结果对应第1行数的起始数和终止数,两个数间空两格,每个结果间换行,所有的结果按起始数从大到小的顺序输出,具体见Sample

 
 
Sample Input
无输入
Sample Output
101 1999
89 1987
……
……
……
 
解题思路:(1)假设第一行中的素数为n[1]、n[2]、n[3]....n、...第二行中的差值为m[1]、m[2]、m[3]...m[j]...。其中m[j]为:m[j]=n[j+1]-n[j]。
     (2)则第二行连续N个数的和为:
        SUM=m[1]+m[2]+m[3]+...+m[j]
            =(n[2]-n[1])+(n[3]-n[2])+(n[4]-n[3])+...+(n[j+1]-n[j])
            =n[j+1]-n[1]
  由此题目就变成了:在不超过2008的所有素数中是否存在这样两个素数,它们的差恰好是1898。若存在,则第二行中必有所需整数序列,其和恰为1898,。
    对等价问题的求解是比较简单的。
    由分析可知,在素数序列中不必包含2,因为任意素数与2的差一定为奇数,所以不必考虑。(同样素数由素数表打表得到)
 
代码如下:
 
 #include <iostream>
#include <cstring>
using namespace std;
int ptr[], prime[] = { , , };
void init(){
int i, j;
memset(prime, , sizeof(prime));
for (i = ; i <= ; i++){
if (prime[i]){
for (j = ; i*j <= ; j++)
prime[i*j] = ;
}
}
}
int main(){
int i, j;
init();
for (j = , i = ; i <= ; i += )
if (prime[i])
ptr[j++] = i;
for (j--; ptr[j] > ; j--){
for (i = ; ptr[j] - ptr[i] > ; i++);
if (ptr[j] - ptr[i] == )
cout << ptr[i] << " " << ptr[j] << endl;
}
return ;
}

[Swust OJ 610]--吉祥数的更多相关文章

  1. [Swust OJ 137]--波浪数(hash+波浪数构造)

    题目链接:http://acm.swust.edu.cn/problem/137/ Time limit(ms): 1000 Memory limit(kb): 65535   Description ...

  2. [Swust OJ 404]--最小代价树(动态规划)

    题目链接:http://acm.swust.edu.cn/problem/code/745255/ Time limit(ms): 1000 Memory limit(kb): 65535   Des ...

  3. SWUST OJ NBA Finals(0649)

    NBA Finals(0649) Time limit(ms): 1000 Memory limit(kb): 65535 Submission: 404 Accepted: 128   Descri ...

  4. [Swust OJ 649]--NBA Finals(dp,后台略(hen)坑)

    题目链接:http://acm.swust.edu.cn/problem/649/ Time limit(ms): 1000 Memory limit(kb): 65535 Consider two ...

  5. 【t090】吉祥数

    Time Limit: 1 second Memory Limit: 128 MB [问题描述] 为了迎接圣诞,信息学兴趣小组的同学在辅导老师的带领下,举办了一个盛大的晚会,晚会的第一项内容是做游戏: ...

  6. [Swust OJ 797]--Palindromic Squares(回文数水题)

    题目链接:http://acm.swust.edu.cn/problem/797/ Time limit(ms): 1000 Memory limit(kb): 10000   Description ...

  7. [Swust OJ 566]--开N方数(牛顿切线法解高次方程)

    题目链接:http://acm.swust.edu.cn/problem/0566/ Time limit(ms): 1000 Memory limit(kb): 65535   Descriptio ...

  8. [Swust OJ 403]--集合删数

    题目链接:http://acm.swust.edu.cn/problem/403/ Time limit(ms): 5000 Memory limit(kb): 65535   Description ...

  9. 数细胞-swust oj

    数细胞(0964) 一矩形阵列由数字0到9组成,数字1到9代表细胞,细胞的定义为沿细胞数字上下左右还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数.编程需要用到的队列及其相关函数已经实现,你只需要完 ...

随机推荐

  1. nginx+uwsgi部署python web(web.py)

    1.nginx: nginx 是一个 http 服务器,与 apache.lighttpd.Microsoft IIS 等属于同类产品. 2.uWSGI: uWSGI 是一个快速的.纯C语言开发的.自 ...

  2. [LeetCode]题解(python):005-Longest Palindromic Substring

    题目来源: https://leetcode.com/problems/longest-palindromic-substring/ 题意分析: 这道题目是输入一段不超过1000的字符串,输出最长的回 ...

  3. FMX相当于在界面上自己又做了一个小操作系统

    FMX的自画界面我也不看好,比如复制粘贴,太丑了,系统做得很好很精细的复制粘贴界面,就是无法调出,比如MIUI,复制粘贴还能有个放大镜,可以选择到屏幕边缘的文字,可以选择剪贴板内多个可粘贴的文字:还有 ...

  4. javascript 字符串方法传参

    javascript 字符串方法传参由于嵌套的单引号,双引号过多.有点混乱.. 正确方法如下: '   <td align="left"><input type= ...

  5. poj 3630 Phone List(字典树)

    题目链接: http://poj.org/problem?id=3630 思路分析: 求在字符串中是否存在某个字符串为另一字符串的前缀: 即对于某个字符串而言,其是否为某个字符串的前缀,或存在某个其先 ...

  6. Linux BFS简介

    1. 什么是BFS 这里的BFS可不是广度优先算法,本文介绍的BFS是Linux的一个非Linux mainline调度算法.根据作者的描述BFS能够极大的提高低端设备(这里的低端设备的定义为:CPU ...

  7. Linux相关问题-CentOS6.5 x64版本号下Tomcat无法自启动的解决的方法

    前段时间使用阿里云server.使用的是Linux CentOS6.5系统,在搭建完Tomcat后发现,Tomcat无法自启动. 将启动tomcat的命令为tomcat_home/bin/startu ...

  8. Android UI 之一步步教你自定义控件(自定义属性、合理设计onMeasure、合理设计onDraw等)

        Android开发做到了一定程度,多少都会用到自定义控件,一方面是更加灵活,另一方面在大数据量的情况下自定义控件的效率比写布局文件更高.     一个相对完善的自定义控件在布局文件中和java ...

  9. OpenStack_Swift源代码分析——Object-auditor源代码分析(1)

    1 Object-auditor 的启动 Object-auditor的启动和object-replicator的启动过程是一样的,首先是运行启动脚本 swift-init object-audito ...

  10. javascript事件及事件传输

    函数必须调用才能执行,可a()加下面的函数调用 JS事件 1.js事件通常和函数结合来使用,这样可以通过发生的事件来驱动函数的执行,从而引起html出现不同的效果. 2.属性(当这些事件的属性发生时, ...