C---已知正整数n是两个不同的质数的乘积,试求出较大的那个质数。

已知正整数n是两个不同的质数的乘积,试求出较大的那个质数。

思路:由题意可知,n为两个质数之积,也就是说只要找到一个数能够被n整除,这个数一定是质数!!!2为最小的质数,直接从2开始找,这里通过平方sqrt减小运算次数,找到质数,然后与n相除,找到另一个质数,比大小即可,选出最大那个即可。

#include 
#include 
#include 

int main()
{
     
    int a,i,j,max;
    scanf("%d",&a);
    for(i=2;i<sqrt(a);i++){
     
        if(a%i==0){
     
            j=a/i;
            break;
        }
    }
    if(i>j){
     
        max=i;
    }
    else{
     
        max=j;
    }
    printf("%d",max);
    return 0;
}

你可能感兴趣的:(考研C++必刷题)