poj3292
来源:互联网 发布:怎样学好plc编程 编辑:程序博客网 时间:2024/06/06 02:09
链接:点击打开链接
题意:可以写成4i+1的数为H-number,只能分解成1*本身,不能分解成其他的H-number的数为H-primes,能够恰好分解成两个H-primes的乘积,且只能是两个数的乘积的数为H-semi-primes,输出1-N之间有多少个H-semi-primes
代码:
#include <set>#include <cstdio>#include <string.h>#include <stdlib.h>#include <iostream>#include <algorithm>using namespace std;bool sign[1000005];int num[1000005];set<int> s;set<int>::iterator ite;int main(){ int i,j,k,n,ans; k=0; memset(sign,0,sizeof(sign)); for(i=5;i<=200005;i+=4) for(j=5;j<=200005;j+=4){ if(i*j>1000001) break; sign[i*j]=1; } //先把H-number的乘积都标记上 for(i=5;i<=200005;i+=4) for(j=5;j<=200005;j+=4){ if(i*j>1000001) break; if(!sign[i]&&!sign[j]){ //记录两个H-primes的乘积 num[k++]=i*j; } } sort(num,num+k); k=unique(num,num+k)-num;// cout<<k<<endl;// for(i=0;i<100;i++)// cout<<num[i]<<" ";// cout<<endl; while(~scanf("%d",&n)!=EOF&&n){ ans=lower_bound(num,num+k,n)-num; if(num[ans]==n) //二分出最后答案 printf("%d %d\n",n,ans+1); else printf("%d %d\n",n,ans); } return 0;}
0 0
- poj3292
- poj3292
- poj3292
- poj3292
- poj3292
- POJ3292
- POJ3292
- poj3292
- POJ3292 筛法
- 水两题 hdu1286 || poj3292
- poj3292(筛选法)
- poj3292 素数筛选
- POJ3292 Semi-prime H-numbers
- POJ3292--Semi-prime H-numbers
- poj3292 变形的素数问题
- poj3292 Semi-prime H-numbers
- poj3292 Semi-prime H-numbers
- POJ3292 Semi-prime H-numbers
- 基于Wolf32F031 自由评估板的ADC实验硬件原理及软件API使用方法(适用于STM32F030/031)
- Tomcat 管理员,用户名,密码配置
- Source folder is not a Java project
- Imageloader<3>-单例模式
- 基于加权最小二乘法的保边缘平滑滤波器(WLS),matlab程序自己编写,更直观
- poj3292
- POJ 2318 TOYS (判断点与直线关系+二分查找)
- Ubuntu声音全部消失
- 基于Wolf32F031 自由评估板的RTC实验硬件原理及软件API使用方法(适用于STM32F030/031)
- Python多线程进行rpm包编译
- 第十五周实践项目3—B-树的基本操作
- 使用Memory Analyzer tool(MAT)分析内存泄漏(二)
- PHP入门
- 获取第三方图片