中级光能
1039 质数乘积取其大求思路
网址点这里:1039 质数乘积取其大
题目:
题目描述 Description
已知一个正整数是由两个大小不同的质数相乘而得,试求出这两个质数中较大的那个。
输入描述 Input Description
输入只有一行,表示正整数 n(6 ≤ n ≤ 1000)。
输出描述 Output Description
输出一行,a,b,max,其中a,b为两个质数因子(a<b),max为最大的那个质数因子。三个数两两之间用单个空格分开。
样例输入 Sample Input
21
样例输出 Sample Output
3 7 7
新手光能
直接for循环i从1到sqrt(n)(n的平方根)(要调用函数#include<cmath>),然后判断n能不能整除n(if(i%n==0)),之后输出这个数与乘上这个数等于n的那个数,(cout<<i<<' '<<n/i)最后找两个数哪个最大直接输出n/i,因为前面的数是1到n的平方,肯定会小于另外一个数。
曾凡一在2018-01-19 19:27:08追加了内容
直接for循环i从1到sqrt(n)(n的平方根,要调用函数#include<cmath>),然后判断n能不能整除n(if(i%n==0)),之后输出这个数与乘上这个数等于n的那个数,(cout<<i<<' '<<n/i)最后找两个数哪个最大直接输出n/i,因为前面的数是1到n的平方,肯定会小于另外一个数。
新手光能
for (int i=2; i<=(int)(sqrt(n)); i++)
{
if (n%i==0)
{
cout<<i<<" "<<n/i<<" "<<n/i<<endl;
}
}
中级守护
for (int i=2; i<=(int)sqrt(n); i++){
if (n%i==0){
cout<<i<<" "<<n/i<<" "<<n/i<<endl;
}
}
高级守护
加头文件cmath,写好质数检测函数后,for循环从2到sqrt(n),判断n%循环值为0、循环值为质数、n÷循环值为质数都为√,由于循环值不大于n的平方根,输出循环值、n÷循环值后再输出n÷循环值