素数筛选-hdu2710
题目描述:
题目大意:找出具有最大素数因子的整数。如果有不止一个,则输出在输入文件中出现最早的一个。
解题思路:刚开始时,p数组中的元素全为0,刚开始对于素数 i,p[i]=0,用一个for循环,将是素数 i 的倍数的数 的在数组p中的值全部赋值为 i;
如:第一轮:2为素数,p[2]=0,p[4]=2,p[6]=2,p[8]=2......p[2*n]=2;
第二轮:3为素数, p[3]=0,p[6]=3,p[9]=3,p[12]=3......p[3*n]=3;
第...轮:i为素数,p[i]=0,p[i+n*i]=i;
再如下列测试案例中 m=38时,在第一轮中,2为素数,38是2的倍数,所以p[38]=2;在第18轮(即i=19)时,19为素数,而38是19的倍数,所以p[38]更新为19
代码实现:
#include<stdio.h>
#include<iostream>
const int MAX=;
int p[MAX];
using namespace std;
int main()
{
int n,s,m,maxn;
int i,j;
p[]=;
for(i=;i<MAX;i++)
{
if(p[i]==)
for(j=i;j<MAX;j+=i)//这一段代码不断实现对p数组进行更新
p[j]=i;
}
while(~scanf("%d",&n))
{
maxn=-;
while(n--)
{ scanf("%d",&m);
if(p[m]>maxn)
{
maxn=p[m];
s=m;
}
}
printf("%d\n",s);
}
return ;
}
素数筛选-hdu2710的更多相关文章
- 1341 - Aladdin and the Flying Carpet ---light oj (唯一分解定理+素数筛选)
http://lightoj.com/volume_showproblem.php?problem=1341 题目大意: 给你矩形的面积(矩形的边长都是正整数),让你求最小的边大于等于b的矩形的个数. ...
- codeforces Soldier and Number Game(dp+素数筛选)
D. Soldier and Number Game time limit per test3 seconds memory limit per test256 megabytes inputstan ...
- POJ 3978 Primes(素数筛选法)
题目 简单的计算A,B之间有多少个素数 只是测试数据有是负的 //AC //A和B之间有多少个素数 //数据可能有负的!!! #include<string.h> #include< ...
- POJ 2689 Prime Distance (素数筛选法,大区间筛选)
题意:给出一个区间[L,U],找出区间里相邻的距离最近的两个素数和距离最远的两个素数. 用素数筛选法.所有小于U的数,如果是合数,必定是某个因子(2到sqrt(U)间的素数)的倍数.由于sqrt(U) ...
- algorithm@ Sieve of Eratosthenes (素数筛选算法) & Related Problem (Return two prime numbers )
Sieve of Eratosthenes (素数筛选算法) Given a number n, print all primes smaller than or equal to n. It is ...
- LightOJ 1236 Pairs Forming LCM (LCM 唯一分解定理 + 素数筛选)
http://lightoj.com/volume_showproblem.php?problem=1236 Pairs Forming LCM Time Limit:2000MS Memor ...
- LightOJ 1259 Goldbach`s Conjecture (哥德巴赫猜想 + 素数筛选法)
http://lightoj.com/volume_showproblem.php?problem=1259 题目大意:给你一个数n,这个数能分成两个素数a.b,n = a + b且a<=b,问 ...
- LightOJ 1341 - Aladdin and the Flying Carpet (唯一分解定理 + 素数筛选)
http://lightoj.com/volume_showproblem.php?problem=1341 Aladdin and the Flying Carpet Time Limit:3000 ...
- poj 2262 Goldbach's Conjecture(素数筛选法)
http://poj.org/problem?id=2262 Goldbach's Conjecture Time Limit: 1000MS Memory Limit: 65536K Total ...
随机推荐
- resolution will not be reattempted until the update interval of repository-group has elapsed or updates are forced
Failed to execute goal on project safetan-web: Could not resolve dependencies for project com.safeta ...
- json和jsonp的使用区别
json和jsonp的使用区别 一. 跨域请求的概念 JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象. 二. json和jsonp JSON是一种基于文本的数据交换方 ...
- transition,过渡效果
语法: transtion:property time change-speed delay. 人话就是:属性(property )在多少秒内(time )通过什么样的速度(change-speed) ...
- 【centos】 error: command 'gcc' failed with exit status 1
原文连接http://blog.csdn.net/fenglifeng1987/article/details/38057193 用安装Python模块出现error: command 'gcc' f ...
- D - Laying Cables Gym - 100971D (单调栈)
题目链接:https://cn.vjudge.net/problem/Gym-100971D 题目大意:给你n个城市的信息,每一个城市的信息包括坐标和人数,然后让你找每一个城市的父亲,作为一个城市的父 ...
- DSO windowed optimization 代码 (3)
4 Schur Complement 部分信息计算 参考<DSO windowed optimization 公式>,Schur Complement 部分指 Hsc(\(H_{X\rho ...
- 用Quartz 2D画小黄人
第一步: 先创建一个OneView类,并在storyboard里边拖拽一个UIview,将这个UIview的类改成OneView.如图所示: 第二步: 在新创建的Oneview里,补齐下列代码: // ...
- shell-检测服务是否运行,并记日志
目的:每隔*分钟检测服务是否运行:若运行中,则记录执行的进程名称:若不运行,记录当前时间 shell: #!/bin/bash date=`date +%Y%m%d` log=/home/mono_$ ...
- Linux内核驱动--硬件访问I/O【原创】
寄存器与内存 寄存器与内存的区别在哪里呢? 寄存器和RAM的主要不同在于寄存器操作有副作用(side effect或边际效果): 读取某个地址时可能导致该地址内容发生变化,比如很多设备的中断状态寄存器 ...
- Android APP—— 开发入门教程
一.SDK下载 下载:adt-bundle-windows-x86_64-20140702.zip(20140702 已经是最后版本了) 解压出来如下: 点击Eclipse安装 创建一个新的工作空间安 ...