[NOIP2012 普及组] 质因数分解
这题考的是数学
知道唯一分解定理:一个数能且只能分解为一组质数的乘积。可知,若输入的数满足题目条件,他就只能分解为两个质数的乘积。所以在比他小且大于1的自然数中,只有那两个数能整除它,之间不可能再有任何合数或质数能整除它了,因为最小的能整除它的合数已经是他本身了。
然后就可以秒杀了
题目描述
已知正整数 n n n 是两个不同的质数的乘积,试求出两者中较大的那个质数。
输入格式
输入一个正整数 n n n。
输出格式
输出一个正整数 p p p,即较大的那个质数。
样例 #1
样例输入 #1
21
样例输出 #1
7
提示
1 ≤ n ≤ 2 × 1 0 9 1 \le n\le 2\times 10^9 1≤n≤2×109
NOIP 2012 普及组 第一题
代码如下
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//获取输入的整数n
int n = scanner.nextInt();
//循环从2开始到n-1
for (int i = 2; i < n; ++i) {
//如果n能够整除i
if (n % i == 0) {
//输出n除以i的商,并结束循环
System.out.println(n/i);
break;
}
}
}
}
希望对大家有用