d21
题目
题目描述
已知正整数 �n 是两个不同的质数的乘积,试求出两者中较大的那个质数。
输入格式
输入一个正整数 �n。
输出格式
输出一个正整数 �p,即较大的那个质数。
输入输出样例
输入 #1复制
21
输出 #1复制
7
说明/提示
1≤�≤2×1091≤n≤2×109
思路
最关键:当一个数(a)能表示为两个质数的积时,该数(a)的因数只有1,a与两个质数。
所以设置一个循环(变量为i),从2到n的平方(这样能保证i是更小那个),如果n能被i整除(n为倍数)的,则输出n/i
代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
//读取输入
Scanner in=new Scanner(System.in);
int n=in.nextInt();
//如果一个数(a)的能为两个质数的积,那么这个数(a)的因数只有1,a,和这两个质数
for (int i = 2; i < Math.sqrt(n); i++) {
if (n%i==0)
System.out.println(n/i);
}
}
}
记录
以后可以自己理出思路以后先看一下题解,有没有什么更好的方式,看懂以后自己下一遍,这样感觉更好,,能学会更好的解法,同时自己也有思考