已知A<B,A和B均为正整数,且A*B=716699,求A+B的最小值

 我来答
匿名用户
2013-07-06
展开全部
你这应该是编程题吧?#include "stdio.h"
#include "math.h"
void main()
{ long int a,b,i,j;
i=716699;
j=716699;
for(a=3;a<sqrt(716699);a+=2)
for(b=a;b<2*sqrt(716699);b+=2)
if(a*b==716699)
{
if((a+b)<(i+j))
{i=a;j=b;}
}
printf("a=%ld,b=%1d",i,j);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-07-06
展开全部
采用C语言,代码如下:
#include"stdio.h"
#include"math.h"
main()
{
int a,b,i,n,m;
m=716699;
n=(int)sqrt(m);
i=2;
while(a<n)
{
i++;
a=n-i;
if(m%a==0) break;
}
printf("A is %d\n",a);
}
算法思想:理论上当A+B=2A或2B时,A+B最小.当A+B=1+716699时,A+B最大.
所以只要取A为小于716699的平方根的取整整数,当716699的平方根取整一直减一,当到达第一个满足716699除于A余数为零时,A+B即为最小.此时A为563.谢谢!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式