题目描述
已知正整数 n 是两个不同的质数的乘积,试求出较大的那个质数。
输入格式
输入只有一行,包含一个正整数 n(6<n<10*10*10*10*.....(省略2个*10)*10*10*10)[10的9次方]
输出格式
输出只有一行,包含一个正整数 p,即较大的那个质数。
输入输出样例
输入 #1 21
输出 #1 7
参考代码
#include <bits/stdc++.h>
using namespace std;
int main() {
int a,b=0;
cin>>a;
for (int i=2;i<=sqrt(a);++i) {
bool f=false;
for (int j=2;j<=sqrt(i);++j) {
if (i%j==0) {
f=true;
break;
}
}
if ((!f)&&a%i==0) {
cout<<a/i;
return 0;
}
}
return 0;
}
代码解读
for (int i=2;i<=sqrt(a);++i)-->浮点类型强制转换为整型;
if (i%j==0) {f=true;break; }-->如果i除以j的余数等于零,说明j是i的因数,把false转为true,退出此循环;
if ((!f)&&a%i==0) {cout<<a/i;return 0;}-->如果f不等于false&&a除以i的余数等于零,那么就输出A除以i,the end.