补充数学知识:n为两个质数之积,这说明只要找到一个数能够被n整除,这个数一定是质数
参考来自
C---已知正整数n是两个不同的质数的乘积,试求出较大的那个质数。_已知正整数n是两个不同的质数的乘积,试求出较大的那个质数-CSDN博客
我觉得他写的很奇怪,这是作者写的代码
就有点无语好吧,加了很多莫名其妙的东西,所以我就改了一下下
#include <stdio.h>
#include <math.h>
int main()
{
int n, i, max;
scanf("%d", &n);
for(i=2; i<sqrt(n); i++)
{
if(n % i == 0)
{
max = n / i;
break;
}
}
printf("%d", max);
return 0;
}
因为2为最小的质数,所以从2开始找。这里其实不用通过平方sqrt减小运算次数,oj题一定有答案,break直接跳出就行了。等遇到较小的质数,然后与n相除,得到另一个较大质数。