哪个大神帮我改下错,谢谢,。A,B为正整数,求满足条件A×B=716699且A+B最小值的A,B值

#include<stdio.h>#include<math.h>intmain(){inta,b,i,x=1,y=716699;while(a<=sqrt(716699... #include <stdio.h>#include <math.h>int main(){ int a,b,i,x=1,y=716699; while(a<=sqrt(716699)); { b=716699/a; if(a*b==716699) if(a+b<x+y) x=a;y=b;}printf("a=%ld,b=%ld",x,y);return 0;} 展开
 我来答
怼嘚莳间
2017-11-18 · TA获得超过107个赞
知道小有建树答主
回答量:79
采纳率:33%
帮助的人:43.5万
展开全部
  • while()后面多了个分号

  • a没有赋值不能直接参与运算

  • 在while循环内,a没有增长,这样循环是无法结束的

追问
具体点怎么改?
追答

#include<stdio.h>

int main() {

int a,b,i,sum=716700; //sum初始化为a=1时的值 

for(i=3;i<716699;i+=2){ //以奇数累加的形式去找除数a 

if(716699%i == 0){

if(i+716699/i < sum){ //对每轮出现的a,b进行和的比较 

a=i;

b=716699/a;

sum=a+b;

}

printf("A=%d\nB=%d\n",a,b);

return 0;

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式