题意:形似4n+1的被称作H-素数,两个H-素数相乘得到H-合成数。求h范围内的H-合成数个数

思路:

h-素数                                                                                                           h-合成数

for(int i=5;i<maxn;i+=4)                                                                         for(int i=5;i<maxn;i+=4)

{   if(h_prime[i]) continue;                                                                             for(int j=5;j<maxn;j+=4){

for(int j=i*5;j<maxn;j+=i*4) h_prime[j]=1; }                                        if(i*j>maxn)  break;    if(!h_prime[i]&&!h_prime[j])   h_sei[i*j]=1;}

注:这里的1反而不是h-素数

解决问题的代码:

  1. #include <iostream>
  2. #include <cstdio>
  3. using namespace std;
  4. #define maxn 1000010
  5. int h_prime[maxn], h_sei[maxn], num[maxn];
  6. void table()
  7. {
  8. h_prime[] = ;
  9. for (int i = ; i < maxn; i += )
  10. {
  11. if (h_prime[i]) continue;
  12. for (int j = i * ; j < maxn; j += i * )
  13. h_prime[j] = ;
  14. }
  15. for(int i=;i<maxn;i+=)
  16. for (int j = ; j < maxn; j += )
  17. {
  18. if (i*j > maxn) break;
  19. if (!h_prime[i] && !h_prime[j])
  20. h_sei[i*j] = ;
  21. }
  22. int ans = ;
  23. for (int i = ; i < maxn; i++)
  24. {
  25. if (h_sei[i]) num[i] = ++ans;
  26. else num[i] = ans;
  27. }
  28. }
  29. int main()
  30. {
  31. int n;
  32. table();
  33. while (scanf("%d", &n)!=EOF)
  34. {
  35. if (n == ) break;
  36. printf("%d %d\n", n, num[n]);
  37. }
  38. return ;
  39. }

poj 3292 H-素数问题 扩展艾氏筛选法的更多相关文章

  1. POJ:3292-Semi-prime H-numbers(艾氏筛选法拓展)

    Semi-prime H-numbers Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10466 Accepted: 4665 ...

  2. POJ 3292

    Semi-prime H-numbers Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7059   Accepted: 3 ...

  3. 51nod 1536不一样的猜数游戏 思路:O(n)素数筛选法。同Codeforces 576A Vasya and Petya's Game。

    废话不多说,先上题目. 51nod Codeforces 两个其实是一个意思,看51nod题目就讲的很清楚了,题意不再赘述. 直接讲我的分析过程:刚开始拿到手有点蒙蔽,看起来很难,然后......然后 ...

  4. 甲题题解-1116. Come on! Let’s C (20)-(素数筛选法)

    用vis标记出现过的id,checked标记询问过的id.至于如何判断排名为素数,用素数筛选法预处理一下即可,水题. #include <iostream> #include <cs ...

  5. ACM/ICPC 之 数论-素数筛选法 与 "打表"思路(POJ 1595)

    何为"打表"呢,说得简单点就是: 有时候与其重复运行同样的算法得出答案,还不如直接用算法把这组数据所有可能的答案都枚举出来存到一个足够大的容器中去-例如数组(打表),然后再输入数据 ...

  6. poj 2262 Goldbach's Conjecture(素数筛选法)

    http://poj.org/problem?id=2262 Goldbach's Conjecture Time Limit: 1000MS   Memory Limit: 65536K Total ...

  7. 【POJ 3292】 Semi-prime H-numbers

    [POJ 3292] Semi-prime H-numbers 打个表 题意是1 5 9 13...这样的4的n次方+1定义为H-numbers H-numbers中仅仅由1*自己这一种方式组成 即没 ...

  8. POJ 3978 Primes(素数筛选法)

    题目 简单的计算A,B之间有多少个素数 只是测试数据有是负的 //AC //A和B之间有多少个素数 //数据可能有负的!!! #include<string.h> #include< ...

  9. POJ 2689 Prime Distance (素数筛选法,大区间筛选)

    题意:给出一个区间[L,U],找出区间里相邻的距离最近的两个素数和距离最远的两个素数. 用素数筛选法.所有小于U的数,如果是合数,必定是某个因子(2到sqrt(U)间的素数)的倍数.由于sqrt(U) ...

随机推荐

  1. B/S模式获取客户端IP地址

    using System.Web; namespace Common { public class IPUtil { /// <summary> /// 获取IP地址 /// </s ...

  2. tomcat的备份脚本

    reference:Crontab的20个例子  先科普一下date的使用方法,在sh脚本中经常会使用得到 date -d<字符串>:显示字符串所指的日期与时间.字符串前后必须加上双引号: ...

  3. 浅谈.htaccess文件--避免滥用.htaccess文件

    .htaccess文件提供了一种目录级别的修改配置的方式. NOTE: 如果你拥有修改apache配置文件的权限,那么完全没有必要使用.htaccess文件.使用.htaccess文件会拖慢apach ...

  4. Filter过滤器,xml配置与页面不乱码整理

    1.xml配置 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi=" ...

  5. restesay部署学习过程中遇到的问题

    Exception starting filter org.jboss.resteasy.plugins.serer.servlet.Filter30Dispatcherjava.lang.Class ...

  6. apache日志设置

    转自:http://hi.baidu.com/bxhack/item/71025d3e65987d88b611db5e apache日志存放位置 Windows: <Apache安装目录> ...

  7. alias 新的命令='原命令 -选项/参数'。举例说明,alias l=‘ls -lsh' 将重新定义 ls 命令,现在只需输入 l 就可以列目录了。

    alias 新的命令='原命令 -选项/参数'.举例说明,alias l=‘ls -lsh' 将重新定义 ls 命令,现在只需输入 l 就可以列目录了.

  8. python+selenium之自动生成excle,保存到指定的目录下

    进行之自动化测试,想把自动生成的excle保存到指定的目录下.网上百度的代码如下: import xlwt import time time = time.strftime ('%Y%m%d%H%M% ...

  9. LeetCode Single Number III (xor)

    题意: 给一个数组,其中仅有两个元素是出现1次的,且其他元素均出现2次.求这两个特殊的元素? 思路: 跟查找单个特殊的那道题是差不多的,只是这次出现了两个特殊的.将数组扫一遍求全部元素的异或和 x,结 ...

  10. LeetCode Reverse Bits 反置位值

    题意:给定一个无符号32位整数,将其二进制形式左右反置,再以整型返回. 思路:循环32轮,将n往右挤出一位就补到ans的尾巴上. class Solution { public: uint32_t r ...