已知正整數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;
}