poj3292-Semi-prime H-numbers(筛法打表)
一,题意:
一个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(筛法打表)的更多相关文章
- poj3292(筛法+打表)
题目链接:https://vjudge.net/problem/POJ-3292 题意:定义4n+1数(简称H数),H数分为三类:unit,即为1; H-primes,只能分解为1×自身,类似于我们平 ...
- CodeForces 385C Bear and Prime Numbers 素数打表
第一眼看这道题目的时候觉得可能会很难也看不太懂,但是看了给出的Hint之后思路就十分清晰了 Consider the first sample. Overall, the first sample h ...
- UVA 10539 - Almost Prime Numbers 素数打表
Almost prime numbers are the non-prime numbers which are divisible by only a single prime number.In ...
- JD 题目1040:Prime Number (筛法求素数)
OJ题目:click here~~ 题目分析:输出第k个素数 贴这么简单的题目,目的不清纯 用筛法求素数的基本思想是:把从1開始的.某一范围内的正整数从小到大顺序排列, 1不是素数,首先把它筛掉.剩下 ...
- 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 ...
- e-olymp Problem9 N-digit numbers(打表)
传送门:点我 N-digit numbers Find the quantity of N-digit numbers, which the sum is equal to their product ...
- (全国多校重现赛一) H Numbers
zk has n numbers a1,a2,...,ana1,a2,...,an. For each (i,j) satisfying 1≤i<j≤n, zk generates a new ...
- 杭电2019多校第八场 Acesrc and Good Numbers——思维打表&&oeis
题意 给定 $d,x$,$f(d,k)$ 表示 $1 \sim k$ 中 $d$ 出现的次数, $k$ 满足 $f(d,k) = k$,求小于 $x$ 的最大的 $k$. 分析 正解不会...,学习了 ...
- 数学--数论--HDU2136 Largest prime factor 线性筛法变形
Problem Description Everybody knows any number can be combined by the prime number. Now, your task i ...
随机推荐
- Angular JS 学习之控制器
1.AngularJS控制器 控制AngularJS的应用程序的数据:AngularJS控制器是常规的javaScript对象: 2.AngularJS应用程序被控制器控制,ng-controller ...
- 移动网站中,用canvas,svg比用图片好?
1.Svg可以单独作为文件打开,在AI里做矢量图形,保存图层路径,即可另存为Svg文件. (1) Path语法:命令+参数.大写字母表示坐标参数为绝对位置,小写字母表示坐标参数为相对位置(即上次画笔结 ...
- #ASP.NET Core 1.0 Key Features
Cross platform support and flexible runtime engine(跨平台支持和灵活的运行时引擎) ASP.NET Core 1.0 offers support f ...
- Codeforces 467C George and Job(DP)
题目 Source http://codeforces.com/contest/467/problem/C Description The new ITone 6 has been released ...
- WPF – pass multiple parameters to a Command
public class SendCommand : ICommand { public void Execute(object parameter) { var labels = ((object[ ...
- 01_Swift2基础之Swift简介+创建
1.Swift 1> Swift初影响 Swift 是新一代的 iOS.OS X 和 watchOS 和 tvOS 的app开发编程语言. 中文名"雨燕",寓意为敏捷.灵巧而 ...
- soapui中文操作手册(一)----创建一个新的项目
1) 创建一个新的项目 点击项目,选择新建项目SOAP.这将打开一个新的SOAP项目对话框. 注意:你也可以做CTRL + N(WIN)或CMD+ N(MAC)来创建一个新的SOAP项目. 在新的SO ...
- Diophantus of Alexandria[HDU1299]
Diophantus of Alexandria Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Ot ...
- 浅谈Javascript中Promise对象的实现
https://segmentfault.com/a/1190000000684654 What? Promise是CommonJS的规范之一,拥有resolve.reject.done.fail.t ...
- Sphinx 全量索引加实时索引
source mysql { type = mysql sql_host = 10.10.3.181 sql_user = root sql_pass = dsideal sql_db = dside ...