一,题意: 
  一个H-number是所有的模四余一的数。(x=4*k+1) 
  如果一个H-number是H-primes 当且仅当它的因数只有1和它本身(除1外)。
  一个H-number是H-semi-prime当且仅当它只由两个H-primes的乘积表示。
  H-number剩下其他的数均为H-composite。
  给你一个数h,问1到h有多少个H-semi-prime数。
二,思路:
  1,打表;
  2,记数,并储存;
  3,输出;
三,步骤: 
  1,打H-semi-prime表
    i,初始化H_number[]等于零;
    ii,双重循环判断 number[i]和number[j]都等于0时
      (即i和j是H-primes时), H_number[i*j]等于1;
      否则等于-1(即i和j有一个不是H-primes);
  2,记录H-semi-prime的个数,并存入对应的数组元素中;
  3,直接输出 H_number[] 数组元素即可

 #include<iostream>
#include<cstring>
using namespace std;
const int N = ;
int H_number[N]; void print_H_number(){
memset(H_number, , sizeof(H_number));
for(int i = ; i < N ; i+=){
for(int j = ; j < N ; j+=){
if(i*j>N)break; //防止越界
if(H_number[j]==&&H_number[i]==) //表示i和j都是H-primes
H_number[i*j]=; //标识 1 表示时是 H-semi-prime
else
H_number[i*j]=-; // 表示i和j有一个不是H-primes 所做的标识
}
}
} void work(){
int count=;
for(int i = ; i < N ; i++){
if(H_number[i]==)count++; //记录 H-prime 的个数
H_number[i]=count; //将每个范围中的 H-prime 个数存入对应的数组元素中
}
} int main(){
int n ;
print_H_number();
work();
while(cin>>n,n){
cout<<n<<" "<<H_number[n]<<endl;
}
return ;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

poj3292-Semi-prime H-numbers(筛法打表)的更多相关文章

  1. poj3292(筛法+打表)

    题目链接:https://vjudge.net/problem/POJ-3292 题意:定义4n+1数(简称H数),H数分为三类:unit,即为1; H-primes,只能分解为1×自身,类似于我们平 ...

  2. CodeForces 385C Bear and Prime Numbers 素数打表

    第一眼看这道题目的时候觉得可能会很难也看不太懂,但是看了给出的Hint之后思路就十分清晰了 Consider the first sample. Overall, the first sample h ...

  3. UVA 10539 - Almost Prime Numbers 素数打表

    Almost prime numbers are the non-prime numbers which are divisible by only a single prime number.In ...

  4. JD 题目1040:Prime Number (筛法求素数)

    OJ题目:click here~~ 题目分析:输出第k个素数 贴这么简单的题目,目的不清纯 用筛法求素数的基本思想是:把从1開始的.某一范围内的正整数从小到大顺序排列, 1不是素数,首先把它筛掉.剩下 ...

  5. codeforces 9 div2 C.Hexadecimal's Numbers 暴力打表

    C. Hexadecimal's Numbers time limit per test 1 second memory limit per test 64 megabytes input stand ...

  6. e-olymp Problem9 N-digit numbers(打表)

    传送门:点我 N-digit numbers Find the quantity of N-digit numbers, which the sum is equal to their product ...

  7. (全国多校重现赛一) H Numbers

    zk has n numbers a1,a2,...,ana1,a2,...,an. For each (i,j) satisfying 1≤i<j≤n, zk generates a new ...

  8. 杭电2019多校第八场 Acesrc and Good Numbers——思维打表&&oeis

    题意 给定 $d,x$,$f(d,k)$ 表示 $1 \sim k$ 中 $d$ 出现的次数, $k$ 满足 $f(d,k) = k$,求小于 $x$ 的最大的 $k$. 分析 正解不会...,学习了 ...

  9. 数学--数论--HDU2136 Largest prime factor 线性筛法变形

    Problem Description Everybody knows any number can be combined by the prime number. Now, your task i ...

随机推荐

  1. position-relative 的问题

    对100%宽度的元素0001添加position-relative属性,如果再给left/right属性,可能会导致0001元素超出其父盒子的范围.如果盒子0001的父级元素是body,可能会出现滚动 ...

  2. js兼容方法:通过样式名获取元素,byClass

    function byClass(oParent,className){ if(document.getElementsByClassName){ //if it is Firefox return ...

  3. wcf,socket,数据传输方式

    WCF的最终目标是通过进程或不同的系统.通过本地网络或是通过Internet收发客户和服务之间的消息. WCF合并了Web服务..net Remoting.消息队列和Enterprise Servic ...

  4. iOS Xcode个人常用插件

    1.AdjustFontSize 按command +/-进行字体大小调整 2.ATProperty @property专用,strong.assign.copy.weak IBOutlet 3.Ba ...

  5. Codeforces 552C Vanya and Scales(思路)

    题目大概说有101个质量w0.w1.w2.....w100的砝码,和一个质量m的物品,问能否在天平两边放物品和砝码使其平衡. 哎,怎么没想到..注意到w0.w1.w2.....w100—— 把m转化成 ...

  6. SQL Prompt

    SQL Prompt介绍编辑 SQL Prompt[1] 是一款拥有SQL智能提示功能的SQL Server和VS插件.SQL Prompt能根据数据库的对象名称,语法和用户编写的代码片段自动进行检索 ...

  7. DependencyProperties or INotifyPropertyChanged ?

    When you want to make an object binding-aware you have two choices : implements INotifyPropertyChang ...

  8. HDU5735 : Born Slippy

    考虑DP,设$f[x]$表示最后一个是$x$时的最优解,则$f[x]=\max(f[y]+w[x]\ opt\ w[y])$,其中$y$是$x$的祖先. 注意到$w[i]<2^{16}$,那么将 ...

  9. topcoder SRM 618 DIV2 MovingRooksDiv2

    一开始Y1,Y2两个参数看不懂,再看一遍题目后才知道,vector<int>索引代表是行数,值代表的是列 此题数据量不大,直接深度搜索即可 注意这里深度搜索的访问标识不是以前的索引和元素, ...

  10. [知识点]Tarjan算法

    // 此博文为迁移而来,写于2015年4月14日,不代表本人现在的观点与看法.原始地址:http://blog.sina.com.cn/s/blog_6022c4720102vxnx.html UPD ...