素数判断:

一、根据素数定义,该数除了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

Problem Description
To improve the organization of his farm, Farmer John
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.

 
Input
* Line 1: A single integer, N

* Lines 2..N+1:
The serial numbers to be tested, one per line

 
Output
* Line 1: The integer with the largest prime factor. If
there are more than one, output the one that appears earliest in the input
file.
 
Sample Input
4
36
38
40
42
 
Sample Output
38
 

题目大意:找到所给数的最大素因子,然后在比较这些素因子的大小,找到最大的,最后输出原有的那个数。

详见代码。

 #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 素数 最大公约数 最小公倍数.....)的更多相关文章

  1. HDU-2710 Max Factor

    看懂: Max Factor Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) T ...

  2. HDOJ/HDU 2710 Max Factor(素数快速筛选~)

    Problem Description To improve the organization of his farm, Farmer John labels each of his N (1 < ...

  3. hdu2710 Max Factor

    题目 //下面这个是最先用的方法,因为学姐先讲完这个,所以懒得写代码,就将就着这个用,结果搞了老半天,还是错了,心累.. #include<stdio.h> #include<str ...

  4. Max Factor(素数筛法)题解

    Max Factor Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  5. 12--c完数/最大公约数/最小公倍数/素数/回文数

    完数/最大公约数/最小公倍数/素数/回文数 2015-04-08 10:33 296人阅读 评论(0) 收藏 举报  分类: C/C++(60)  哈尔滨工业大学(8)  版权声明:本文为博主原创文章 ...

  6. poj 3048 Max Factor(素数筛)

    这题就是先写个素数筛,存到prime里,之后遍历就好,取余,看是否等于0,如果等于0就更新,感觉自己说的不明白,引用下别人的话吧: 素数打表,找出20000之前的所有素数,存入prime数组,对于每个 ...

  7. HDU 2710 Max Factor(数论,素数筛法)

    #include<iostream> #include<stdio.h> #include<string.h> #include<cmath> usin ...

  8. ACM Max Factor

    To improve the organization of his farm, Farmer John labels each of his N (1 <= N <= 5,000) co ...

  9. POJ3048 Max Factor

    本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转 ...

随机推荐

  1. web 性能测试与报告

    web性能测试大家第一都会想到:loadrunner.ab.siege.http_load等工具.但是这些工具生成的测试报告都不是我想要的. 这里给大家推荐一个sitespeed,使用简单,生成非常详 ...

  2. delphi 取得数据集某字段值的六种方法

    //取name字段的示例   edit1.Text:=ADOquery1.Fields[2].AsString;   //取得数据表的第二个字段的值 edit2.Text:=ADOquery1.Fie ...

  3. WPF布局间的切换方法

    效果图,两种效果间的切换

  4. WPF实例,以getFiles()获取文件夹,treeview的应用

    读取电脑硬盘根目录添加到TreeView控件 foreach (DriveInfo item in System.IO.DriveInfo.GetDrives()) { if(item.ToStrin ...

  5. 【python】使用枚举类

    当我们需要定义常量时,一个办法是用大写变量通过整数来定义,例如月份: JAN = 1 FEB = 2 MAR = 3 ... NOV = 11 DEC = 12 好处是简单,缺点是类型是int,并且仍 ...

  6. 计蒜客 17417 Highest Tower(思维+图论)

    题解: 实际上一个可行解即选取长和宽的一个,使得最后每一组选第一维的数值都不同 在此基础上,使得另一维的和最大. 然后建立图论模型 对于每一个方块,在a和b之间连边. 对于选择的方案,如果选择a-&g ...

  7. UVA.548 Tree(二叉树 DFS)

    UVA.548 Tree(二叉树 DFS) 题意分析 给出一棵树的中序遍历和后序遍历,从所有叶子节点中找到一个使得其到根节点的权值最小.若有多个,输出叶子节点本身权值小的那个节点. 先递归建树,然后D ...

  8. HDOJ(HDU).1114 Piggy-Bank (DP 完全背包)

    HDOJ(HDU).1114 Piggy-Bank (DP 完全背包) 题意分析 裸的完全背包 代码总览 #include <iostream> #include <cstdio&g ...

  9. openssl安装相关软件

    出现:error: openssl/md5.h: No such file or directory 原因是libssl-dev 没有安装,执行: sudo apt-get install libss ...

  10. Unresolved import *** (models) error on Eclipse

    Eclipse version: Oxygen.2 Release (4.7.2) Python version: 3.6 问题:系统提示:from django.db import models 语 ...