已知正整数n是两个不同的质数的乘积,试求出较大的那个质数。
思路:由题意可知,n为两个质数之积,也就是说只要找到一个数能够被n整除,这个数一定是质数!!!2为最小的质数,直接从2开始找,这里通过平方sqrt减小运算次数,找到质数,然后与n相除,找到另一个质数,比大小即可,选出最大那个即可。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
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;
}