抓其根本(一)(hdu2710 Max Factor 素数 最大公约数 最小公倍数.....)
素数判断:
一、根据素数定义,该数除了1和它本身以外不再有其他的因数。
详见代码。
int prime()
{
for (int i=; i*i<=n; i++)
{
if (n%i==) //不是素数
return ; //返回1
}
return ; //是素数返回0
}
二、打表,将所有的素数一一列出,存在一个数组里。
详见代码。
void prime()
{
for (int i=; i<; i++) //从2开始一个一个找
{
if (hash[i]==) //这一个判断可以减少很多重复的,节省很多时间
{
for (int j=; i*j<; j++) //只要乘以i就一定不是素数
{
hash[i*j]=; //不是素数标记为1
}
}
}
}
提供一种技巧、如果题目里面所有的计算都是素数之间的转化的话、可以如下。
void prime()
{
int k=;
for (int i=; i<; i++)
{
if (hash[i]==)
{
sushu[k++]=i; //所有的素数都存在了sushu的数组里面,或者放在队列里面q.push(i);
for (int j=; i*j<; j++)
{
hash[i*j]=;
}
}
}
}
举个例子:hdu2710 Max Factor
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2710
Max Factor
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 4168 Accepted Submission(s):
1366
labels each of his N (1 <= N <= 5,000) cows with a distinct serial number
in the range 1..20,000. Unfortunately, he is unaware that the cows interpret
some serial numbers as better than others. In particular, a cow whose serial
number has the highest prime factor enjoys the highest social standing among all
the other cows.
(Recall that a prime number is just a number that has no
divisors except for 1 and itself. The number 7 is prime while the number 6,
being divisible by 2 and 3, is not).
Given a set of N (1 <= N <=
5,000) serial numbers in the range 1..20,000, determine the one that has the
largest prime factor.
* Lines 2..N+1:
The serial numbers to be tested, one per line
there are more than one, output the one that appears earliest in the input
file.
题目大意:找到所给数的最大素因子,然后在比较这些素因子的大小,找到最大的,最后输出原有的那个数。
详见代码。
#include <iostream>
#include <cstdio>
#include <cstring> using namespace std; int hash[]; void prime()
{
for (int i=; i<; i++)
{
if (hash[i]==)
{
for (int j=; i*j<; j++)
{
hash[i*j]=i;//i表示的是最大的素因子
}
}
}
//return hash[n];
} int main ()
{
int T;
memset(hash,,sizeof(hash));
sushu();
while (~scanf("%d",&T))
{
int Max=,x=;
while (T--)
{
int n;
scanf("%d",&n);
if (hash[n]>Max)
{
Max=hash[n];
x=n;
}
}
printf ("%d\n",x);
}
return ;
}
最大公约数(gcd)
详见代码。
int gcd(int a,int b)
{
return a%b?gcd(b,a%b):b;
}
最小公倍数
求解最小公倍数,一般都要借助最大公约数。辗转相除求得最大公约数,再用两数之积除以此最大公约数,得最小公倍数。
注意基本!!!
抓其根本(一)(hdu2710 Max Factor 素数 最大公约数 最小公倍数.....)的更多相关文章
- HDU-2710 Max Factor
看懂: Max Factor Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) T ...
- HDOJ/HDU 2710 Max Factor(素数快速筛选~)
Problem Description To improve the organization of his farm, Farmer John labels each of his N (1 < ...
- hdu2710 Max Factor
题目 //下面这个是最先用的方法,因为学姐先讲完这个,所以懒得写代码,就将就着这个用,结果搞了老半天,还是错了,心累.. #include<stdio.h> #include<str ...
- Max Factor(素数筛法)题解
Max Factor Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- 12--c完数/最大公约数/最小公倍数/素数/回文数
完数/最大公约数/最小公倍数/素数/回文数 2015-04-08 10:33 296人阅读 评论(0) 收藏 举报 分类: C/C++(60) 哈尔滨工业大学(8) 版权声明:本文为博主原创文章 ...
- poj 3048 Max Factor(素数筛)
这题就是先写个素数筛,存到prime里,之后遍历就好,取余,看是否等于0,如果等于0就更新,感觉自己说的不明白,引用下别人的话吧: 素数打表,找出20000之前的所有素数,存入prime数组,对于每个 ...
- HDU 2710 Max Factor(数论,素数筛法)
#include<iostream> #include<stdio.h> #include<string.h> #include<cmath> usin ...
- ACM Max Factor
To improve the organization of his farm, Farmer John labels each of his N (1 <= N <= 5,000) co ...
- POJ3048 Max Factor
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转 ...
随机推荐
- WIN7使用过360系统急救箱后出现的任务计划程序文件夹删除的办法
直接进主题(怀疑系统有问题用了下360系统急救箱,用完后发现计划任务多了个360superkiller文件夹,右键直接是删除不了的) 尝试了各种方法都是不爽,突然想到计划任务不是在在系统盘下的一个文件 ...
- C#的垃圾回收
C#中垃圾回收 GC.Collect();强制进行内存回收.
- Redis源码剖析
Redis源码剖析和注释(一)---链表结构 Redis源码剖析和注释(二)--- 简单动态字符串 Redis源码剖析和注释(三)--- Redis 字典结构 Redis源码剖析和注释(四)--- 跳 ...
- 【python】 可迭代对象、迭代器、生成器
可迭代对象 iterable 可直接作用于for循环的对象统称为可迭代对象. 有 list. dict.tuple.set.str等数据类型,还有 generator(包括生成器和带yield的gen ...
- matlab函数列表(A~Z)【转】
A a abs 绝对值.模.字符的ASCII码值acos 反余弦acosh 反双曲余弦acot 反余切acoth 反双曲余切acsc 反余割acsch 反双曲余割align 启动图形对象几何位置排列工 ...
- poj 1273 && hdu 1532 Drainage Ditches (网络最大流)
Drainage Ditches Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 53640 Accepted: 2044 ...
- Javascript 中 == 和 === 区别是什么?
Javascript 中 == 和 === 区别是什么? 作者:Belleve链接:https://www.zhihu.com/question/31442029/answer/77772323来源: ...
- ictclas4j 分词工具包 安装流程
首先把 ictclasj解压缩,然后 1.把 Data文件夹整个拷贝到 Eclipse项目的文件夹下, 2.而 bin目录下的 org文件夹整个拷贝到你 Eclipse项目的 bin目录下,(将cla ...
- Oracle 获取 某个表的建表SQL
获取A表的创表SQL select dbms_metadata.get_ddl('TABLE','A') from dual
- Java.util包简单总结
Java.util包简单总结 1. util包的框架 常用的集合类主要实现两个“super接口”而来:Collection和Map. 1.1 Collection有两个子接口:List和Set è¿é ...