题目直达:P1075 [NOIP2012 普及组] 质因数分解
分类:数学逻辑题
解题思路:质数的定义:质数的定义就是在大于1的自然数中,除了1和它本身外,不能整除其他自然数的数叫做质数。
题目中,要找出最大的质数,不如先转化成要找最小的质数。1和这个数本身肯定要排除;
所以只用把这个数除与(2到n-1中)找到最小的那个可以被整除的质数就可以了。
根据定理:只存在唯一质数解,也不用去考虑是否会被其他的质数整除,因为如果一个数是两个不同质数的乘积,那这个数n只能是1和这个数n本身以及这两个质数因子)。
这里提供核心思路:惟一分解定理 (简单来说就是一个数只能分解成唯一对质数的乘积)。
代码如下(Java):
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
for (int i=2;i<=n;i++){
if (n%i==0){
System.out.println(n/i);
return;
}
}
}
}