SGU 231 Prime Sum 求lt;=n内有多少对素数(a,b)使得a+b也为素数 规律题
题目链接:点击打开链接
题意:
求<=n内有多少对素数(a,b)使得a+b也为素数
思路:
我们发现全部素数间隔都是>=2的,且除了2都是奇数。那么:
奇数+奇数 = 偶数。
所以仅仅有一种情况2+素数=素数。
所以打个素数表,看一下有多少个素数和前面那个素数间隔是2的。
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <math.h>
#include <queue>
#include <set>
#include <algorithm>
using namespace std;
#define N 88498
typedef int ll;
ll prime[N], primenum, ans[N];
void PRIME(ll Max_Prime){primenum = 0;prime[primenum++] = 2;for(ll i = 3; i <= Max_Prime; i+=2)for(ll j = 0; j < primenum; j++)if(i%prime[j]==0)break;else if(j == primenum-1 || prime[j] > sqrt((double)i)){prime[primenum++] = i;break;}
}
int n;
void solve(){int pos = lower_bound(prime, prime+primenum, n)-prime;if(prime[pos]!=n)pos--;printf("%d\n", ans[pos]);for(int i = 1; i <= pos; i++)if(ans[i-1]!=ans[i])printf("2 %d\n", prime[i-1]);
}
int main(){PRIME(1000000);// for(int i = 0; i <= 10; i++)printf("%d ", prime[i]);// printf("%d\n", primenum);memset(ans, 0, sizeof ans);for(int i = 1; i < primenum; i++){if(prime[i-1] == prime[i] - 2)ans[i]++;}for(int i = 1; i < primenum; i++)ans[i] += ans[i-1];while(~scanf("%d",&n))solve();return 0;
}
SGU 231 Prime Sum 求lt;=n内有多少对素数(a,b)使得a+b也为素数 规律题相关推荐
- SGU 231 Prime Sum 求=n内有多少对素数(a,b)使得a+b也为素数 规律题
题目链接:点击打开链接 题意: 求<=n内有多少对素数(a,b)使得a+b也为素数 思路: 我们发现所有素数间隔都是>=2的,且除了2都是奇数,那么: 奇数+奇数 = 偶数. 所以只有一种 ...
- 6:求指定范围内的素数
6:求指定范围内的素数 素数:又称质数,是指除了1和它自身外没有其它因子的正整数(1不是素数). 输入2个正整数m和n(m≤n),输出m~n间的所有素数,并求出个数. 提示:定义一个判断素数的函数,通 ...
- 水仙花区间java_给你A和B,求[A,B]区间内有多少个水仙花数 输入描述: 两个整数,用空格隔开,保证数字...
给你A和B,求[A,B]区间内有多少个水仙花数 输入描述: 两个整数,用空格隔开,保证数字都小于等于1000000,否则返回0 输出描述: 一个数字,表示[A,B]区间内的水仙花数个数 分析得分点: ...
- 组合数学-容斥原理-求指定区间内与n互素的数的个数
求指定区间内与n互素的数的个数 给出整数n和r.求区间[1,r]中与n互素的数的个数. 去解决它的逆问题,求不与n互素的数的个数. 考虑n的所有素因子pi(i=1···k) 在[1,r]中有多少数能被 ...
- java求六位数以内所有自幂数
如果在一个固定的进制中,一个n位自然数等于自身各个数位上数字的n次幂之和,则称此数为自幂数. 以下用java语言求六位数以内所有自幂数. 独身数共有9个: 1,2,3,4,5,6,7,8,9; 水仙花 ...
- ACMNO.17C语言-筛法求素数 用筛法求之N内的素数。
题目描述 用筛法求之N内的素数. 输入 N 输出 0-N的素数 样例输入 100 样例输出 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 7 ...
- C#筛法求出范围内的所有质数
科普篇:筛法是一种简单检定素数的算法.据说是古希腊的埃拉托斯特尼(Eratosthenes,约公元前274-194年)发明的,又称埃拉托斯特尼筛法(sieve of Eratosthenes). 说实 ...
- Project Euler 50 Consecutive prime sum
题意: 素数41可以写成六个连续素数的和: 41 = 2 + 3 + 5 + 7 + 11 + 13 在小于一百的素数中,41能够被写成最多的连续素数的和. 在小于一千的素数中,953能够被写成最多的 ...
- Database之SQL:SQL之over partition by开窗函数的简介、使用方法(求各班级内各自排名/求各班级内第一名/求各班级内分数递增和等案例解析)之详细攻略
Database之SQL:SQL之over partition by开窗函数的简介.使用方法(求各班级内各自排名/求各班级内第一名/求各班级内分数递增和等案例解析)之详细攻略 目录 over part ...
最新文章
- dwr消息推送和tomcat集群
- 安装 centos7
- linux shel的学习网站(推荐)
- Java入门需掌握的30个基本概念[转]
- LeetCode 1553. 吃掉 N 个橘子的最少天数(BFS)
- HDFS balancer 异常处理
- requests由于系统缓冲区空间不足_系统C盘满了空间不足的扩容?
- 在C++中使用Lambda函数提高代码性能
- POJ1062 昂贵的聘礼(最短路径)
- 为什么计算机网络使用数字信号,什么是数字信号
- ArcGIS+Google Earth Pro 经纬度标点地图
- 最小生成树算法之Prim(普里姆)算法
- app标签栏android,Android Navigation TabBar控件实现多彩标签栏
- JavaScript高程三----(基础一)
- HE4484E芯片资料
- 流程图基础绘制方法和流程图制作软件功能详解
- e4a换行_这个易语言代码用E4A怎么写?
- m3u8下载合并图片文件(但实际上还是ts文件)
- python机器学习——决策树(分类)及“泰坦尼克号沉船事故”数据集案例操作
- 关于poi操作word,word转换pdf预览,这边文章就够了
热门文章
- 《avascript 高级程序设计(第三版)》 ---第三章 基本概念2
- android修改用户名和密码错误,Android应用开发Android Studio 修改用户名、密码、URL等操作教程...
- 【开源】多多客发布 3.0.0-alpha.6,Koa+Vue+Taro最佳实践
- CentOS 6与7对比【转】
- “音”你而来,“视”而可见 腾讯云+社区音视频技术开发实战沙龙圆满结束...
- swift 点击imageView全屏预览(UIview中弹出提示框)
- CAD转换图片的小窍门
- 10.1综合强化刷题 Day1 morning
- [Spring实战系列](8)Spring注入方式之setter注入
- Cocos2d-x 3.2:定时器的使用和原理探究(1)