用C语言求987654321最大质因子的算法,一直运行不出来(VC++6.0),本人刚刚开始学习语言求大神帮忙

郢辰 2015-11-16 02:20:12
987654321分解质因数,所得到的最大的质因子是
#include<stdio.h>

int prinn(int x){
int d,i;
d=x-1;
for(d;d>=2;d--)
for(i=2;i<=d;i++){
if(i!=d&&d%i==0){
break;
}
if(i==d){
return d;
break;
}
}
}

void main(){
int x=987654321;
int d,c;
for(x;x>=3;x--){
d=prinn(x);
c=x%d;
if(c==0)
printf("&d",d);
break;
}
}
...全文
404 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
郢辰 2015-11-16
  • 打赏
  • 举报
回复
引用 5 楼 郢辰的回复:
找到一个可以解决的算法,贴出来但是还是想把自己的算法挑对
#include<stdio.h> void main(void) { int i,a; printf("请输入一个整数"); scanf("%d",&a); for(i=2;a!=1;i++) if(a%i==0) { a/=i; printf("%d ",i); i--; } printf("\n"); } 手机手打,有错误请见谅
paschen 2015-11-16
  • 打赏
  • 举报
回复
引用 4 楼 programonky 的回复:
[quote=引用 1 楼 paschen的回复:]main中那句输出要这样写:printf("%d",d); 另外我测试了下,最后c不为0,if不成立,所以就什么也没输出了 另外编译时有个警告,prinn函数不是所有路径都有返回值,楼主检查下
谢谢大神,输出语句已经改了,我要找最大能整除的数字,但是能整除是不是就是取余为零啊?还有大神你用的是哪一个软件,我这个没有出警告,谢谢[/quote] 可以这么判断,我用VS2012,警告:warning C4715: “prinn”: 不是所有的控件路径都返回值
郢辰 2015-11-16
  • 打赏
  • 举报
回复
找到一个可以解决的算法,贴出来但是还是想把自己的算法挑对
郢辰 2015-11-16
  • 打赏
  • 举报
回复
引用 1 楼 paschen的回复:
main中那句输出要这样写:printf("%d",d); 另外我测试了下,最后c不为0,if不成立,所以就什么也没输出了 另外编译时有个警告,prinn函数不是所有路径都有返回值,楼主检查下
谢谢大神,输出语句已经改了,我要找最大能整除的数字,但是能整除是不是就是取余为零啊?还有大神你用的是哪一个软件,我这个没有出警告,谢谢
fly_dragon_fly 2015-11-16
  • 打赏
  • 举报
回复
int prinn(int x)
{
    for(int k=2,kk=sqrt(x+0.5);k<=kk;k++) if(x%k==0) return x/k;
    return x;
}
赵4老师 2015-11-16
  • 打赏
  • 举报
回复
代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。 提醒:再牛×的老师也无法代替学生自己领悟和上厕所! 单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。
paschen 2015-11-16
  • 打赏
  • 举报
回复
main中那句输出要这样写:printf("%d",d); 另外我测试了下,最后c不为0,if不成立,所以就什么也没输出了 另外编译时有个警告,prinn函数不是所有路径都有返回值,楼主检查下
一、C语言自我YY1)、C语言是许多高级计算机语言的基础,学好C语言能更好的学习其他高级语言,为以后的学习打基础;往深学C语言的话那就是学到C在Linux里的应用,Linux十分强大。2)、C语言是一种计算机程序设计语言。具有高级语言的特点,又具有汇编语言的特点。C语言可作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。3)、应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画。具体应用比如单片机以及嵌入式系统开发。4)、C语言是面向过程语言C语言通过windows/linux平台下编译的,是直接运行在windows/linux平台下的,而XX始终是运行在他的虚拟机之上的;所以理论上C语言能做一些相对于比较底层的工作,像XX就不能编写Windows病毒。5)、如果要利用编程来做一些windows优化工作的话,建议还是利用C语言C语言是目前世界上流行、使用最广泛的高级程序设计语言6、很多编译器,几乎所有操作系统Windows,Linux,Unix的大部分代码都是C,C在背后做了很多东西的,也许开发游戏用C++,安卓用XX更为合适,图形界面的用其他语言开发效率更高一些(因为他们封装了很多东西),但同样的原因导致略微接近底层的功能其他语言根本干不了!Windows的API都是按照C语言的格式给的,这也很能说明问题!嵌入式开发更是离不了C语言!纵观电脑发展几十年,C语无所不能呀!

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧