Semi-prime H-numbers

  题目大意,令4n+1的数叫H数,H数素数x的定义是只能被x=1*h(h是H数),其他都叫合数,特别的,当一个数只能被两个H素数乘积得到时,叫H-semi数

  做法,筛法暴力打表,记得要打表不然会TLE

  

 #include <iostream>
#include <functional>
#include <algorithm>
#define MAX_N 1000100 using namespace std; static int H_Semi[MAX_N], H_Semi_Flag[MAX_N], H_Semi_Sum[MAX_N]; void Inivilize(void); int main(void)
{
int range;
Inivilize();
while (~scanf("%d", &range))
{
if (range == ) break;
printf("%d %d\n", range, H_Semi_Sum[range]);
}
return ;
} void Inivilize(void)
{
//-1不是H数 ,0表示是H_P,1表示H_C,2表示H_s
int j, i, ans = ;
memset(H_Semi_Flag, -, sizeof(H_Semi_Flag));
for (i = ; * i + <= ; i++)
H_Semi_Flag[ * i + ] = ;
for (i = ; * i + <= ; i++)
{
for (j = ; ( * i + ) * ( * j + ) <= && j <= i; j++)
{
if (H_Semi_Flag[( * j + )] == )
{
if (H_Semi_Flag[( * i + )] == )
{
if (H_Semi_Flag[( * i + ) * ( * j + )] == )
H_Semi_Flag[( * i + ) * ( * j + )] = ;
else if (H_Semi_Flag[( * i + ) * ( * j + )] == )
continue;
}
else if (H_Semi_Flag[( * i + ) * ( * j + )] == )
H_Semi_Flag[( * i + ) * ( * j + )] = ;
}
else if (H_Semi_Flag[( * i + ) * ( * j + )] == || H_Semi_Flag[( * i + ) * ( * j + )] == )
H_Semi_Flag[( * i + ) * ( * j + )] = ;
}
}
for (int i = ; i <= ; i++)
{
if (H_Semi_Flag[i] == )
ans++;
H_Semi_Sum[i] = ans;
}
}

Mathematics:Semi-prime H-numbers(POJ 3292)的更多相关文章

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

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

  2. POJ 3292 Semi-prime H-numbers (素数筛法变形)

    题意:题目比较容易混淆,要搞清楚一点,这里面所有的定义都是在4×k+1(k>=0)这个封闭的集合而言的,不要跟我们常用的自然数集混淆. 题目要求我们计算 H-semi-primes, H-sem ...

  3. Mathematics:Pseudoprime numbers(POJ 3641)

     强伪素数 题目大意:利用费马定理找出强伪素数(就是本身是合数,但是满足费马定理的那些Carmichael Numbers) 很简单的一题,连费马小定理都不用要,不过就是要用暴力判断素数的方法先确定是 ...

  4. Sum of Consecutive Prime Numbers POJ - 2739 线性欧拉筛(线性欧拉筛证明)

    题意:给一个数 可以写出多少种  连续素数的合 思路:直接线性筛 筛素数 暴力找就行   (素数到n/2就可以停下了,优化一个常数) 其中:线性筛的证明参考:https://blog.csdn.net ...

  5. Greedy:Sum of Consecutive Prime Numbers(POJ 2739)

     素数之和 题目大意:一些整数可以表示成一个连续素数之和,给定一个整数要你找出可以表示这一个整数的连续整数序列的个数 方法:打表,然后用游标卡尺法即可 #include <iostream> ...

  6. Mathematics:Raising Modulo Numbers(POJ 1995)

    阶乘总和 题目大意:要你算一堆阶乘对m的模... 大水题,对指数二分就可以了... #include <iostream> #include <functional> #inc ...

  7. A - Smith Numbers POJ

    While skimming his phone directory in 1982, Albert Wilansky, a mathematician of Lehigh University,no ...

  8. Day7 - I - Semi-prime H-numbers POJ - 3292

    This problem is based on an exercise of David Hilbert, who pedagogically suggested that one study th ...

  9. POJ 3292 Semi-prime H-numbers

    类似素数筛... Semi-prime H-numbers Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6873 Accept ...

随机推荐

  1. SQL Server2005主从复制实现

    转自:http://blog.csdn.net/gaojier1000/article/details/5805814 一.     准备工作:1 .在发布服务器上建立一个共享目录,作为发布快照文件的 ...

  2. Linux 下新增虚拟内存

    问题描述,电脑内存1G.在启用elasticsearch的时候,报错 Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memor ...

  3. discuz个人空间主题列表 图片模式实现方法

    discuz X3空间主题列表 图片展现模式,discuz实现个人空间主题列表调用图片模式,discuz home图片列表 如果需要实现该呈现方式,我们需要首先了解discuz封面图片存储原理:dis ...

  4. servlet过滤器实现维护项目

    最近公司需要系统维护,提出要建一个维护系统,要求: 1.访问公司域名跳到系统首页 2.点击首页的任意按钮给出维护提示信息 3.用户访问之前收藏的任意系统链接跳转到首页 下面介绍下用过滤器实现上述需求 ...

  5. 将一个div始终定位在屏幕中心

    //div的id为box #box{ width:200px; heighti:200px; border:1px solid #f00; //重点是以下规则 position:absolute; t ...

  6. leetcode 278. First Bad Version

    You are a product manager and currently leading a team to develop a new product. Unfortunately, the ...

  7. SQL手册

    来自 W3School 的 SQL 快速参考.可以打印它,以备日常使用. SQL 语句 语句 语法 AND / OR SELECT column_name(s)FROM table_nameWHERE ...

  8. linux中comm命令用法

    linux系统中comm命令用法详解 linux系统下的comm命令是一个非常实用的文件对比命令. comm命令功能:   选择或拒绝两个已排序的文件的公共的行. comm命令语法:comm [-12 ...

  9. 剑指Offer 变态跳台阶

    题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法.   其实就是斐波那契数列问题. 假设f(n)是n个台阶跳的次数. f(1) = ...

  10. velocity +mybatis+ springMvc构建邮件服务器知识总结

    1.在controller中传值到页面 (1)List<String> 类型 List<String> servers = null ; //…………………… mv.addOb ...