半质数的个数 csdn 英雄会 高校俱乐部
2·14 情人&元宵节专题:半质数的个数。
题目:质数是大家熟知的概念,我们定义一个半质数的概念:如果一个数恰好是两个质数的乘积(可以相同),则称它为半质数。前几个半质数是 4, 6, 9, 10, 14, 15, 21, 22, 25,
26。我们的问题是,输入两个正整数x<=y,问[x,y]之间有多少个半质数? 输入:x,y 输出:[x,y]之间有多少个半质数。 输入数据范围 1<=x<=y<=2000000。 祝所有挑战的Heros 2014年情人节、元宵节快乐。
解释:这是一道简单的题目,思路就是打表吧。没多困难。(我怎么发现我写的问题都几乎是当成水题来做的?)
众所周知,求逆的问题相对来说都是比较困难,比如分解问题,矩阵求逆等等。既然范围已出且在可接受范围,那 么还多虑什么?
步骤: 1.打素数表
2.打半质数表
……
代码:
/*******************************************************************************/
/* OS : 3.2.0-58-generic #88-Ubuntu SMP Tue Dec 3 UTC 2013 GNU/Linux
* Compiler : g++ (GCC) 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)
* Encoding : UTF8
* Date :
* All Rights Reserved by yaolong.
*****************************************************************************/
/* Description: ***************************************************************
*****************************************************************************/
/* Analysis: ******************************************************************
*****************************************************************************/
/*****************************************************************************/
//* #include <stdio.h>
#include <iostream>
#include <string>
#include <cstring>
using namespace std; #define N 2000000 bool prime[N];
bool dp[3*N];
int first=1;
void fun1()
{
memset(prime,1,sizeof(prime));
memset(dp,0,sizeof(dp));
int i;
//从2开始筛选
for(i=2; i*i<N; i++)
if(prime[i])
/*确定没被筛选过的,道理很简单:若x|y,y|z,则有x|z.(y被x筛选过,那么y能筛选的数都被x筛选了)可一定程度上避免多余的筛选*/
for(int j=2*i; j<N; j+=i)
prime[j]=false; } void fun2()
{
int i,j;
for(i=2; i<N; i++)
{
int tmp=(2*N)/i;
for(j=i; j<=N; j++)
{
if(j>tmp)
break;
if(prime[i]&&prime[j])
{
dp[i*j]=true; }
} } }
int fun3(int x,int y)
{
int res=0;
for(int i=x; i<=y; i++)
{
//cout<<dp[i];
if(dp[i])
{
res++;
} }
return res; } class Test
{
public:
static int howmany (int x,int y)
{
if(first==1)
{
first=0;
fun1();
fun2();
}
return fun3(x,y);
}
};
//start 提示:自动阅卷起始唯一标识,请勿删除或增加。
int main()
{
cout<<Test::howmany(60,1000000)<<endl;
}
//end //提示:自动阅卷结束唯一标识,请勿删除或增加。
半质数的个数 csdn 英雄会 高校俱乐部的更多相关文章
- CSDN 高校俱乐部: 排列搜索
CSDN 高校俱乐部/英雄会 题目: 设数组a包含n个元素恰好是0..n - 1的一个排列,给定b[0],b[1],b[2],b[3]问有多少个0..n-1的排列a,满足(a[a[b[0]]]*b[0 ...
- [LeetCode] Count Primes 质数的个数
Description: Count the number of prime numbers less than a non-negative number, n click to show more ...
- N的N次方(高校俱乐部)
最近一直在刷字符串和线段树,也越来越少玩高校俱乐部,无聊看到一题N的N次方的问题,脑海中各种打表就涌现出来了. 弄了不一会儿,就写完了,马上提交,但是系统好像出了问题,提示"哦哦,出了点状况 ...
- L - Prime Number(求n内质数的个数)
Description Write a program which reads an integer n and prints the number of prime numbers which ar ...
- [LeetCode] 204. Count Primes 质数的个数
Count the number of prime numbers less than a non-negative number, n. Example: Input: 10 Output: 4 E ...
- 嘉泽 P2120: 【基础】半质数 题解
原题链接 简要题意: 求区间内能分解为两个质数乘积的数. 欧拉筛先筛素数. 然后再筛答案. 时间复杂度: \(O(n)\). 实际得分:\(100pts\). #pragma GCC optimize ...
- 翻纸牌 高校俱乐部 英雄会 csdn
题目描述 有一种纸牌游戏,很有意思,给你N张纸牌,一字排开,纸牌有正反两面,开始的纸牌可能是一种乱的状态(有些朝正,有些朝反),现在你需要整理这些纸牌.但是麻烦的是,每当你翻一张纸牌(由正翻到反,或者 ...
- 朋友的礼物(英雄会,csdn,高校俱乐部)信封问题,匹配模型
前言: 首先这是一题解,但是重点最代码之后,有耐心的可以直接从代码后看. 上题目:n个人,每个人都有一件礼物想送给他人,他们决定把礼物混在一起,然后每个人随机拿走一件,问恰好有m个人拿到的礼物恰好是自 ...
- P次方数 英雄会 csdn 高校俱乐部
题目: 一个整数N,|N| >= 2, 如果存在整数x,使得N = x * x * x... (p个x相乘) =x^p,则称N是p次方数,给定32位内的整数N,求最大的P.例如N=5,输出1,N ...
随机推荐
- HDOJ/HDU 1085 Holding Bin-Laden Captive!(非母函数求解)
Problem Description We all know that Bin-Laden is a notorious terrorist, and he has disappeared for ...
- JavaScript---网络编程(10)--DHTML技术演示(3)-多选框
这节讲述多选框的使用,当然,肯定是结合css和Javascript一起的. checkbox的使用1: 演示代码: <html> <head> <meta http-eq ...
- (转载)反编译android的apk文件步骤
下面的方法我已经尝试过,完全可以成功,重点的步骤我在这里说一下 1.必须要有java环境,记得配置好环境变量 2.如果只查看class中的函数文件,只需要下载dex2jar和jd-gui 3.下载地址 ...
- JavaScript 严格模式介绍
如我们所知,JavaScript 是一门灵活的语言.其灵活性同样也带来了很多坑,当然也有一些是设计缺陷.比如 一个变量没有声明就赋值,默认是全局变量,如 (function () { a = 3; } ...
- Spark Repl过程分析(源码)
- Yii框架tips
db组件 'schemaCachingDuration'=>3600, 为什么不起做用?需要开缓存 如何在页面下边显示sql的查询时间在log组件的routes中加入 array('class' ...
- java spring一个类型split的方法
/** * Take a String which is a delimited list and convert it to a String array. * <p>A single ...
- .h头文件 .lib库文件 .dll动态库文件之间的关系
.h头文件是编译时必须的,lib是链接时需要的,dll是运行时需要的. 附加依赖项的是.lib不是.dll,若生成了DLL,则肯定也生成 LIB文件.如果要完成源代码的编译和链接,有头文件和lib就够 ...
- android81 多线程下载和断电续传
package com.itheima.multithreaddownload; import java.io.BufferedReader; import java.io.File; import ...
- 一个基于MVVM的TableView组件化实现方案
AITableView https://github.com/chentoo/AITableView cocoapods: pod ‘AITableView’ 做什么用? 这是一个简化UITableV ...