题目来源:Light OJ 1356 Prime Independence
题意:给你n个数 选出最多的数构成一个集合使得任何2个数不是另外一个数的质数倍 x!=k*y
思路:矛盾的2个数连边 并且所有数分成质因子数为奇数和偶数两部分 以质因子奇偶不同构建二分图 同奇 同偶的数一定不是另外一个数的质数倍
判断矛盾 首先对每个数因子分解 例如x 有a1个p1质因子 a2个p2质因子...an...
分类:
其他好文 时间:
2014-08-06 19:09:32
阅读次数:
303
#include #include #include #include using namespace std;int a[1000001];int prime[1000001];int main(){ int k,tt=0; int p; a[0]=a[1]=0; a[2...
分类:
其他好文 时间:
2014-08-05 18:39:19
阅读次数:
171
#include #include #include int f[3000000];int main(){ int i, j, k; f[0]=0; f[0]=1; f[2]=1; for(i=0; i<=3000000; i++) //所有2的倍数标记为不是素数 { if(i%2==0) ...
分类:
其他好文 时间:
2014-08-04 10:27:46
阅读次数:
176
题目链接题意 : 就是把n个数安排在环上,要求每两个相邻的数之和一定是素数,第一个数一定是1。输出所有可能的排列。思路 : 先打个素数表。然后循环去搜。。。。。 1 //1016 2 #include 3 #include 4 #include 5 6 using namespace std...
分类:
其他好文 时间:
2014-07-30 23:08:45
阅读次数:
172
题目:给你一个数,问有多少对素数的和小于这个数。
分析:数论。利用素数表枚举求解。
1.打表计算1000000内的素数(筛法);
2.对于每个输入的数字 v,枚举他的所有拆分情况;
设F(i)是不超过数字 i 的素数的个数,S(v)为 v 的拆分种数,则:
S(v)= sum(m...
分类:
其他好文 时间:
2014-07-27 23:37:49
阅读次数:
245
掌握了容斥原理后,便会发现,这是一道简单的容斥原理的题。
题目描述:给定A, B, N (1 <= A <= B <= 10^15,1<=N <= 10^9).求[A,B]区间内与N互素的数的个数
看到这道题,自然联想到跟素数相关的知识,所以在做这道题之前,我忍不住整理一下关于素数的基本算法。
1、素数筛选法(求1~n的素数):http://blog.csdn.net/yzj577/article/details/38147433
2、验证素数:http://blog.c...
分类:
其他好文 时间:
2014-07-27 11:27:22
阅读次数:
291
http://poj.org/problem?id=2689
题意:给出一个大区间[L,U],分别求出该区间内连续的相差最小和相差最大的素数对。
因为L2147483647,直接筛素数是不行的,数组就开不了。但是可以根据素数筛的原理。我们先筛出sqrt(2147483647)以内的素数,然后拿这些素数去筛[L,U]之间的素数,即两次素数筛。但是L,U还是很大,但U-L
#includ...
分类:
其他好文 时间:
2014-07-24 10:28:16
阅读次数:
210
#include
int main()
{
int i,j,a[505]={0};
for(i=1;i<=500;i++)
a[i]=1;
for(i=2;i<=500;i++)
if(a[i])
for(j=i+i;j<=500;j+=i)
a[j]=0;
for(i=2;i<=500;i++)
if(a[i])
printf("%d ",i);
p...
分类:
其他好文 时间:
2014-07-20 09:30:21
阅读次数:
268
题目简单的计算A,B之间有多少个素数只是测试数据有是负的//AC//A和B之间有多少个素数//数据可能有负的!!!#include#include//素数筛选法int pri[100000+10];//1 合数, 0 素数void Prime(){ memset(pri,0,sizeof(pr...
分类:
其他好文 时间:
2014-07-19 20:04:10
阅读次数:
266