poj 3292 H-素数问题 扩展艾氏筛选法
2024-08-26 06:16:42
题意:形似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-素数
解决问题的代码:
#include <iostream>
#include <cstdio>
using namespace std;
#define maxn 1000010
int h_prime[maxn], h_sei[maxn], num[maxn];
void table()
{
h_prime[] = ;
for (int i = ; i < maxn; i += )
{
if (h_prime[i]) continue;
for (int j = i * ; j < maxn; j += i * )
h_prime[j] = ;
}
for(int i=;i<maxn;i+=)
for (int j = ; j < maxn; j += )
{
if (i*j > maxn) break;
if (!h_prime[i] && !h_prime[j])
h_sei[i*j] = ;
}
int ans = ;
for (int i = ; i < maxn; i++)
{
if (h_sei[i]) num[i] = ++ans;
else num[i] = ans;
}
}
int main()
{
int n;
table();
while (scanf("%d", &n)!=EOF)
{
if (n == ) break;
printf("%d %d\n", n, num[n]);
}
return ;
}
最新文章
- 【原创】kafka controller源代码分析(一)
- DNS介绍
- AsyncHttpClient
- Spark、Shark集群安装部署及遇到的问题解决
- frame,iframe,frameset用法和区别
- Class类对象的三种实例化方法
- js 根据身份证号获取性别,年龄,等
- Git创建本地版本库
- [Swift]LeetCode54. 螺旋矩阵 | Spiral Matrix
- gulp学习笔记——最好的学习文档是官网
- smarTTY总是失败连接的原因
- Linux内核分析第二次作业
- 小程序使用 rpx 单位 转 px的方法(用于动画、canvas画图)
- Java:大文件拆分工具
- 【代码笔记】iOS-SDWebImage的使用
- scp命令:服务器间远程复制代码
- maven-war-plugin 插件 web.xml 缺失时忽略
- [Scikit-learn] 1.1 Generalized Linear Models - Lasso Regression
- Oracle中修改sysman和dbsnmp密码正确流程
- linux键盘input_event浅析【转】