问题标题: 酷町堂1039 质数乘积取其大求助大神(求思路~)

0
0
已解决
王梓澳
王梓澳
中级光能
中级光能

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


3
已采纳
曾凡一
曾凡一
新手光能
新手光能

直接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的平方,肯定会小于另外一个数。

0
王子轩
王子轩
新手光能
新手光能

 

for (int i=2; i<=(int)(sqrt(n)); i++)

 

{

 

if (n%i==0)

 

{

 

cout<<i<<" "<<n/i<<" "<<n/i<<endl;

 

}

 

}

0
夏天
夏天
中级守护
中级守护

 for (int i=2; i<=(int)sqrt(n); i++){
  if (n%i==0){
   cout<<i<<" "<<n/i<<" "<<n/i<<endl;
  }
 }

0
0
刘凯南
刘凯南
高级守护
高级守护

加头文件cmath,写好质数检测函数后,for循环从2到sqrt(n),判断n%循环值为0、循环值为质数、n÷循环值为质数都为√,由于循环值不大于n的平方根,输出循环值、n÷循环值后再输出n÷循环值

0
孙天博
孙天博
新手守护
新手守护
 for (int i=2; i<=(int)(sqrt(n)); i++) 
    { 
        if (n%i==0) 
        {    
            cout<<i<<" "<<n/i<<" "<<n/i<<endl;   
        }
    }

 

我要回答