已知正整数n是两个不同的质数的乘积,试求出较大的那个质数(用c语言写出这个程序)
思路:由题意可知,n为两个质数之积,也就是说只要找到一个数能够被n整除,这个数一定是质数!!!2为最小的质数,直接从2开始找,这里通过平方sqrt减小运算次数,找到质数,然后与n相除,找到另一个质数
你题目的解答代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
unsigned long long int n,m,i,j=-1;
scanf("%lld",&n);
m = sqrt(n);
for(i=2;i<=m;i++){
if(n%i==0){
j=n/i;
break;
}
}
printf("%lld",j);
return 0;
}
如有帮助,望采纳!谢谢!