我重新换了一种算法

这种方法 大概能在16秒左右把40000000之内的 完数扫描出来

#include

int iswanshu(int n)

{

int i,j,count ;

i=count=0 ;

j=n ;

while(i!=1)

{

i=n/2 ;

if(n%2!=0)

i++;

if(j%i!=0)

{

return 0 ;

}

if((i%2)!=0&&i>1)

count++;

n=i ;

}

if(count>0)

{

return 1;

}else{

return 0;

}

}

int checkagain(int n)

{

int i,sum ;

sum=0 ;

for(i=1;i

{

if(n%i==0)

sum=sum+i ;

}

if(sum==n){

return 1 ;

}else{

return 0 ;

}

}

printwanshu(int n)

{

int i ;

i=0 ;

printf("%d its factors are ",n);

while(i!=1)

{

i=n/2 ;

if(n%2!=0)

i++;

printf("%d,",i);

n=i ;

}

printf("\n");

}

main()

{

int i,n ;

while(1)

{

printf("本程序将实现输出1-n之间的完数,n>=1\n现在请输入n:");

scanf("%d",&n);

printf("你输入的数是%d\n",n);

if(n>=1)

break ;

}

for(i=1;i<=n;i++)

{

if(iswanshu(i)==1&&checkagain(i)==1)

printwanshu(i);

}

}

-----------------------------

我输入n=40000000时 大概16左右出了结果如下

6 its factors are 3,2,1,

28 its factors are 14,7,4,2,1,

496 its factors are 248,124,62,31,16,8,4,2,1,

8128 its factors are 4064,2032,1016,508,254,127,64,32,16,8,4,2,1,

33550336 its factors are 16775168,8387584,4193792,2096896,1048448,524224,262112,

131056,65528,32764,16382,8191,4096,2048,1024,512,256,128,64,32,16,8,4,2,1,

[[it] 本帖最后由 gzbao9999 于 2008-11-5 15:18 编辑 [/it]]

c语言编程求完数的方法,求一完数算法相关推荐

  1. c语言编程输出1000以内能被3整除的数,【C语言】找出1000以内可以被3整除的数

    分别用while,do-while,for语句实现 方法一:while #include int main() { int m; m = ; while (m<=) { if (m % == ) ...

  2. c语言编程输出100以内所有6的倍数的数,第8天学C语言(一点练习,例如打印1~100之间所有3的倍数的数字)...

    (2020.9.12) 练习1:从大到小输出三个值 算法实现 a中放最大值 b次之 c最小 int a = 0; int b = 0; int c = 0; scanf_s("%d%d%d& ...

  3. 用牛顿法求方程的根的c语言编程,用牛顿迭代法和二分法求方程的根【C语言】...

    1.用牛顿迭代法求该方程在1.5附近的根:2X^3-4X^2+3X-6=0 #include #include double func(double x) //函数 {return 2*x*x*x-4 ...

  4. c语言编程格式错误是什么意思,求大神看看这个为什么在OJ上显示格式错误

    求大神看看这个为什么在OJ上显示格式错误 题目描述 n 个人围成一圈, 并依次编号1-n,.从编号为1 的人开始,按顺时针方向每隔一人选出一个,剩下的人重新围成一圈,如此循环直到剩下两人,这剩下的两人 ...

  5. C语言编程:输入一行英文句子,统计单词数(个人注解)

    #include <stdio.h> #include <stdlib.h>int main() {char ch;int sum = 0,word = 0;//用word来判 ...

  6. c语言查找功能的怎么使用方法,求C语言实现查询功能(如果选择3,如何实现查询)...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 printf("                       * *          3   查询商品          * *\n" ...

  7. C语言 最小二乘 向量旋转 欧拉方法求洛伦兹方程

    最小二乘 This question will develop a set of functions to least square fit the linear model

  8. mysql服务器的线程数查看方法_MySQL服务器线程数的查看方法详解

    本文实例讲述了MySQL服务器线程数的查看方法.,具体如下: mysql重启命令: /etc/init.d/mysql restart MySQL服务器的线程数需要在一个合理的范围之内,这样才能保证M ...

  9. 最短寻道时间算法c语言,如果北京到上海有千亿条路,寻找最短路径用C语言编程用枚举法没效率,应该用什么算法才能高效解决它?...

    满意答案 l3324147 2013.12.02 采纳率:42%    等级:12 已帮助:6324人 迪杰斯特拉(Dijkstra)算法求图的单源最短路径 template void Dijkstr ...

最新文章

  1. Windows App开发之集成设置、帮助、搜索和共享
  2. voc生成xml 代码
  3. 人脸相关2020eccv
  4. 豆瓣评分9分+,每一部看完不禁感慨!这里是神州大地!
  5. import openfire4.0.2 source code in eclipse
  6. java基本数据类型声明及初始化方法
  7. BMC指定4路NCSI网口中的一路
  8. php mysql stmt_PHP mysqli_stmt_init() 函数 | 菜鸟教程
  9. Linux下简单的木马查杀
  10. Android NDK开发之旅17 NDK Apk增量更新
  11. SDN 交换机迁移1
  12. springboot+vue基本微信小程序的疫情防控平台系统 计算机毕业设计
  13. 京东2020双十二活动终于来啦,脚本助你领年终
  14. word文档在保存后消失,如何恢复?
  15. vue使用地图api
  16. Ubuntu切换窗口,快速返回桌面
  17. web学习一——We简介、Tomcat、HTTP协议
  18. python人工智能应用实例_Python实现AI自动抠图实例解析
  19. linux运行dock打包的镜像,Docke镜像和仓库基础命令
  20. 数据库的基本概念-基础(课堂笔记)

热门文章

  1. 上网不用防火墙!一招克死所有病毒
  2. Python base64编码
  3. PDF格式转换Word怎么转
  4. c语言农场,C语言课程设计《开心农场》源码公开
  5. 基于Java+JFrame开发的单机版开心农场游戏源码,Java开发的单机电脑版开心农场游戏源代码
  6. 浅谈应届生的职业规划
  7. C++ 大学课堂知识点总结
  8. win10添加无线蓝牙键盘链接需要输入PIN码 但是没有
  9. 【极术读书】赠卡活动第二期,免费领极客时间月卡系统学习技术管理
  10. pdf水印怎么加?步骤非常简单