0x31 质数
poj2689 算根号R的质数,然后把L~R区间(这个很小啊)的合数判下
#include<cstdio>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<cmath>
using namespace std;
typedef long long LL; int pr,prime[];bool v[];
void get_prime(int li)
{
pr=;memset(v,false,sizeof(v));
for(int i=;i<=li;i++)
{
if(v[i]==false)prime[++pr]=i;
for(int j=;j<=pr&&i*prime[j]<=li;j++)
{
v[i*prime[j]]=true;
if(i%prime[j]==)break;
}
}
} int blen,bprime[];
int main()
{
int L,R;
while(scanf("%d%d",&L,&R)!=EOF)
{
if(L==)L++;
get_prime( (int(sqrt(double(R)))) );
memset(v,false,sizeof(v));
for(int j=;j<=pr;j++)
{
LL d=L%prime[j]==?L:((LL)prime[j])*((LL)(L/prime[j]+));
if(d==prime[j])d+=prime[j];
while(d<=R)
{
v[d-L+]=true;
d+=prime[j];
}
}
blen=;
for(int i=;i<=R-L+;i++)
if(v[i]==false)bprime[++blen]=i;
if(blen<=)printf("There are no adjacent primes.\n");
else
{
int mx1=-,mx2,mn1=-,mn2;
for(int i=;i<blen;i++)
{
if(mx1==-||mx2-mx1<bprime[i+]-bprime[i])
mx1=bprime[i], mx2=bprime[i+]; if(mn1==-||mn2-mn1>bprime[i+]-bprime[i])
mn1=bprime[i], mn2=bprime[i+];
}
mx1+=L-, mx2+=L-, mn1+=L-, mn2+=L-;
printf("%d,%d are closest, %d,%d are most distant.\n",mn1,mn2,mx1,mx2);
}
}
return ;
}
poj2689
阶乘分解 筛素数然后看每个素数的贡献啊。
#include<cstdio>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<cmath>
using namespace std;
typedef long long LL; int pr,prime[];bool v[];
void get_prime(int li)
{
pr=;memset(v,false,sizeof(v));
for(int i=;i<=li;i++)
{
if(v[i]==false)prime[++pr]=i;
for(int j=;j<=pr&&i*prime[j]<=li;j++)
{
v[i*prime[j]]=true;
if(i%prime[j]==)break;
}
}
} int main()
{
int n;
scanf("%d",&n);
get_prime(n); for(int j=;j<=pr;j++)
{
printf("%d ",prime[j]);
LL k=prime[j];int c=;
while(k<=n)
{
c+=n/k;
k*=prime[j];
}
printf("%d\n",c);
}
return ;
}
阶乘分解
0x31 质数的更多相关文章
- 0x31 prime distance(质数)
题目描述: 给定两个整数L和U,你需要在闭区间[L,U]内找到距离最接近的两个相邻质数C1和C2(即C2-C1是最小的),如果存在相同距离的其他相邻质数对,则输出第一对. 同时,你还需要找到距离最远的 ...
- BZOJ 2818: Gcd [欧拉函数 质数 线性筛]【学习笔记】
2818: Gcd Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 4436 Solved: 1957[Submit][Status][Discuss ...
- [LeetCode] Count Primes 质数的个数
Description: Count the number of prime numbers less than a non-negative number, n click to show more ...
- 为什么质数检验到 N的开方 就可以结束了
以为所有N的除数都是以根号N为轴对称的. 例如16的开方为4: 16%1 == 0 则1 与 16 都是16的除数. 16%2 == 0 则2 与 8 都是16的除数. 16%4 ==0 则4 为16 ...
- 求两个数字的最大公约数-Python实现,三种方法效率比较,包含质数打印质数的方法
今天面试,遇到面试官询求最大公约数.小学就学过的奥数题,居然忘了!只好回答分解质因数再求解! 回来果断复习下,常用方法辗转相除法和更相减损法,小学奥数都学过,很简单,就不细说了,忘了的话可以百度:ht ...
- PHP面试题之实现输出100以内的质数
最近求职时的其中一道面试题: 求100之内的质数 <? //求100以内质数 for ($i = 1; $i <= 100; $i++) { $k = 0; for ($j = 1; $j ...
- shell统计指定范围内的所有质数以及它们的和
#!bin/bash a= $) ;do n= $x);do ];then n=$[$n+] fi done ];then { echo -n -e "$x\t" sum=$[$s ...
- CNUOJ 0486 800401反质数
难度级别:A: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 将正整数 x 的约数个数表示为 g(x).例如,g(1)=1,g(4)=3, g ...
- NOI 1.5 44:第n小的质数
---恢复内容开始--- 描述 输入一个正整数n,求第n小的质数. 输入 一个不超过10000的正整数n. 输出 第n小的质数. 样例输入 10 样例输出 29 方法1:合数一定可以表示成一个比它小的 ...
随机推荐
- Oracle数据库学习1------数据库安装及客户端配置
1.注册Oracle账户: 注册地址:https://login.oracle.com/mysso/signon.jsp 注意:注册的时候尽量使用外国的邮箱,因为使用国内的邮箱可能收不到Oracle发 ...
- NOIP2013 D2T1 积木大赛
[NOIP2013T4]积木大赛 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 noip2013day2 描述 春春幼儿园举办了一年一度的"积木大 ...
- C# 线程知识汇总
一.基本概念 进程(process)是windows系统中你的一个基本概念,它包含着一个运行程序所需要的资源.一个正在运行的应用程序在操作系统中被视为一个进程,进程可以包括一个或者多个线程.线程是操作 ...
- layoutInflater的用途以及获取VIEW方法
如果需要用到自定义多个布局,就需要用到layoutInflater,获取layoutInflater一般有几种方式,但我在实际使用中,感觉如下的getLayoutInflater()是最为方便的,不用 ...
- 使用postman模拟登录请求
Cookie 可以写在Headers里面
- UWP Tiles
1.我们建议安装通知库 NuGet 程序包 详细内容 2.我们建议安装NotificationsVisualizerLibrary 这是 The official NotificationsVisua ...
- Jquery 研究 入口
<script type="text/javascript"> //var jQuery = function () { // console.log(jQuery.f ...
- bootstrap中container 类和container-fluid类的区别container类所谓的自适应也是通过margin的改变来完成,container-fluid类的百分百宽度是指在固有的15px的padding前提下宽度总是当前视口的宽度。
container 类和container-fluid类的区别体现在是否有随视口宽度改变的margin存在. container类所谓的自适应也是通过margin的改变来完成,container-fl ...
- Linux date命令的用法(转)
1.命令:date 2.命令功能:date 可以用来显示或设定系统的日期与时间. 3.命令参数 -d<字符串>:显示字符串所指的日期与时间.字符串前后必须加上双引号: -s<字符串& ...
- DB2常用运维命令
DB2是IBM公司推出关系型数据库管理系统.主要应用于银行.医院等大型机构.现今DB2主要包含以下三个系列:DB2 for Linux, UNIX and Windows(LUW) . DB2在Lin ...