本蒟蒻的第二篇题解,望大家多多见谅!
PartPartPart 111 读题
题目描述:
已知正整数nnn是两个不同的质数的乘积,试求出较大的那个质数。
输入格式:
输入只有一行,包含一个正整数 nnn。
输出格式:
输出只有一行,包含一个正整数ppp,即较大的那个质数。
输入样例:
21
输出样例:
7
数据范围与提示:
n≤2147483647n≤2147483647n≤2147483647
PartPartPart 222 思路
由题意可知,我们要计算输入值nnn的最大的质因数(即为ppp),再输出ppp。
计算
for(int i=2;i<=sqrt(n);i++){
if(n%i==0){
cout<<n/i;
break;
}
}
大家分析完后,可以试着写代码哦!
PartPartPart 333 代码
方法一(有函数):
#include <bits/stdc++.h>
using namespace std;
void prime(int n) {
for(int i=2;i<=sqrt(n);i++){
if(n%i==0){
cout<<n/i;
break;
}
}
}
int main(){
long long n;
cin>>n;
prime(n);
return 0;
}
方法二(无函数):
#include <bits/stdc++.h>
using namespace std;
int main(){
long long n;
cin>>n;
for(int i=2;i<=sqrt(n);i++){
if(n%i==0){
cout<<n/i;
break;
}
}
return 0;
}
PartPartPart 444 总结
本题考查最大质因数的计算
看完题解后,会不会感到很简单呢?赶快去试试吧!

该编程题要求找到给定正整数n的最大质因数,即两个不同质数乘积中的较大质数。解决方案是遍历2到sqrt(n),一旦找到因数,就输出其值。文章提供了两种C++实现方法,一种使用函数,另一种直接在主函数中完成。
373





