c语言编程求完数的方法,求一完数算法
我重新换了一种算法
这种方法 大概能在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语言编程求完数的方法,求一完数算法相关推荐
- c语言编程输出1000以内能被3整除的数,【C语言】找出1000以内可以被3整除的数
分别用while,do-while,for语句实现 方法一:while #include int main() { int m; m = ; while (m<=) { if (m % == ) ...
- 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& ...
- 用牛顿法求方程的根的c语言编程,用牛顿迭代法和二分法求方程的根【C语言】...
1.用牛顿迭代法求该方程在1.5附近的根:2X^3-4X^2+3X-6=0 #include #include double func(double x) //函数 {return 2*x*x*x-4 ...
- c语言编程格式错误是什么意思,求大神看看这个为什么在OJ上显示格式错误
求大神看看这个为什么在OJ上显示格式错误 题目描述 n 个人围成一圈, 并依次编号1-n,.从编号为1 的人开始,按顺时针方向每隔一人选出一个,剩下的人重新围成一圈,如此循环直到剩下两人,这剩下的两人 ...
- C语言编程:输入一行英文句子,统计单词数(个人注解)
#include <stdio.h> #include <stdlib.h>int main() {char ch;int sum = 0,word = 0;//用word来判 ...
- c语言查找功能的怎么使用方法,求C语言实现查询功能(如果选择3,如何实现查询)...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 printf(" * * 3 查询商品 * *\n" ...
- C语言 最小二乘 向量旋转 欧拉方法求洛伦兹方程
最小二乘 This question will develop a set of functions to least square fit the linear model
- mysql服务器的线程数查看方法_MySQL服务器线程数的查看方法详解
本文实例讲述了MySQL服务器线程数的查看方法.,具体如下: mysql重启命令: /etc/init.d/mysql restart MySQL服务器的线程数需要在一个合理的范围之内,这样才能保证M ...
- 最短寻道时间算法c语言,如果北京到上海有千亿条路,寻找最短路径用C语言编程用枚举法没效率,应该用什么算法才能高效解决它?...
满意答案 l3324147 2013.12.02 采纳率:42% 等级:12 已帮助:6324人 迪杰斯特拉(Dijkstra)算法求图的单源最短路径 template void Dijkstr ...
最新文章
- Windows App开发之集成设置、帮助、搜索和共享
- voc生成xml 代码
- 人脸相关2020eccv
- 豆瓣评分9分+,每一部看完不禁感慨!这里是神州大地!
- import openfire4.0.2 source code in eclipse
- java基本数据类型声明及初始化方法
- BMC指定4路NCSI网口中的一路
- php mysql stmt_PHP mysqli_stmt_init() 函数 | 菜鸟教程
- Linux下简单的木马查杀
- Android NDK开发之旅17 NDK Apk增量更新
- SDN 交换机迁移1
- springboot+vue基本微信小程序的疫情防控平台系统 计算机毕业设计
- 京东2020双十二活动终于来啦,脚本助你领年终
- word文档在保存后消失,如何恢复?
- vue使用地图api
- Ubuntu切换窗口,快速返回桌面
- web学习一——We简介、Tomcat、HTTP协议
- python人工智能应用实例_Python实现AI自动抠图实例解析
- linux运行dock打包的镜像,Docke镜像和仓库基础命令
- 数据库的基本概念-基础(课堂笔记)