POJ 3292 Semi-prime H-numbers
2013-11-24 16:24
387 查看
http://poj.org/problem?id=3292
题意 :表示这个题我真的没看懂。。。大意是讲:对于4*n+1(n为自然数)组成的集合H-numbers,乘法在该集合中是封闭的,在该集合内,只能被1和自身整除的为H-primes,然后由两个 H-primes的乘积为H-semi-prime,给你一个数k,让你求从1到k有多少个H-semi-prime。
思路 :一开始没看懂题也就不知道意思,其实看来这道题就是枚举嘛。
View Code
题意 :表示这个题我真的没看懂。。。大意是讲:对于4*n+1(n为自然数)组成的集合H-numbers,乘法在该集合中是封闭的,在该集合内,只能被1和自身整除的为H-primes,然后由两个 H-primes的乘积为H-semi-prime,给你一个数k,让你求从1到k有多少个H-semi-prime。
思路 :一开始没看懂题也就不知道意思,其实看来这道题就是枚举嘛。
#include <iostream> #include <string.h> using namespace std; const int maxn = 1000201 ; int h_prime[maxn] ; int h_number[maxn] ; void prime() { int cnt ; for(int i = 5 ; i < maxn ; i += 4) for(int j = 5 ; j < maxn ; j += 4) { cnt = i*j ; if(cnt > maxn) break ; if(h_prime[i] == 0&&h_prime[j] == 0) h_prime[cnt] = 1 ; else h_prime[cnt] = 2 ; } } int main() { memset(h_prime,0,sizeof(h_prime)) ; prime() ; int cnt = 0 ; for(int i = 1 ; i < maxn ; i++) { if(h_prime[i] == 1) cnt++ ; h_prime[i] = cnt ; } int k ; while(cin>>k && k) { cout<<k<<" "<<h_prime[k]<<endl ; } return 0; }
View Code
相关文章推荐
- POJ 3292.Semi-prime H-numbers
- POJ 3292-Semi-prime H-numbers(筛选法)
- POJ 3292 Semi-prime H-numbers 笔记
- POJ 3292 Semi-prime H-numbers (筛法统计)
- POJ 3292 Semi-prime H-numbers
- poj 3292 Semi-prime H-numbers
- poj 3292 Semi-prime H-numbers(筛法~)
- POJ 3292--Semi-prime H-numbers
- poj 3292 Semi-prime H-numbers
- poj 3292 Semi-prime H-numbers
- POJ-3292-Semi-prime H-numbers
- POJ 3292 Semi-prime H-numbers (变形埃氏筛法)
- Semi-prime H-numbers--POJ 3292
- POJ 3292 Semi-prime H-numbers(类素数筛法)
- Semi-prime H-numbers(POJ 3292)
- POJ 3292 Semi-prime H-numbers (仿素数筛)
- POJ-3292 Semi-prime H-numbers
- poj-3292-Semi-prime H-numbers
- POJ-3292-Semi-prime H-numbers -数学
- POJ 3292 Semi-prime H-numbers(打表)