SGU 231 Prime Sum 求<=n内有多少对素数(a,b)使得a+b也为素数 规律题
2014-09-18 16:12
369 查看
题目链接:点击打开链接
题意:
求<=n内有多少对素数(a,b)使得a+b也为素数
思路:
我们发现所有素数间隔都是>=2的,且除了2都是奇数,那么:
奇数+奇数 = 偶数。
所以只有一种情况2+素数=素数。
所以打个素数表,看一下有多少个素数和前面那个素数间隔是2的。
题意:
求<=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 , primenum, ans ; 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 求<=n内有多少对素数(a,b)使得a+b也为素数 规律题
- 给定长度为nn的序列a,求有多少对i, j (i < j)i,j(i<j),使得|a_i-a_j| \ mod \ b = c∣a i −a j ∣ mod b=c
- 在N*N的棋盘上(1<=N<=10)请填入1,2,...N2共N2个数,使得任意两个相邻的数之和为素数。
- 求解两数和是素数——sgu231
- a=5,b=8,c=9; x=a&amp;lt;b||c++ 最后结果,c是多少呢?
- 一串首尾相连的珠子(m个),有N种颜色(N<=10),使得最短的字符串包含全部颜色
- 判断是否能被已知的且<x的素数整除(使用数组)
- unity3d 加载进度条<带图,带当前加载百分之多少>
- <模板>米勒拉宾素数判定 题目是hdu4910
- Java中 -1l<<<1是多少?
- 加载进度条<带图,带当前加载百分之多少>
- 712^N(712的N次方),0<N<12345,问,结果尾数为696的个数为多少?
- SGU:231 Prime Sum
- 性能测试知多少<http://www.51testing.com/html/42/n-815642.html>
- hdu 3037 Saving Beans 求Comb(n,m)%p p是素数且p<=10000
- 有多少行? SELECT rows FROM sysindexes WHERE id = OBJECT_ID('table_name') AND indid < 2
- SPOJ4491. Primes in GCD Table(gcd(a,b)=d素数,(1<=a<=n,1<=b<=m))加强版
- 【小熊刷题】power of two, pow(x, n) <Leetcode 231, 50 Java>
- HTML,用表格单元格放置图片 <img>,</td><td>之间的回车会使得图像之间有空隙
- 将n(0<=n<=10000)的阶乘分解质因数,求其中有多少个m