完美数-java
来源:互联网 发布:asp.net博客源码 编辑:程序博客网 时间:2024/06/08 20:07
算法一
import java.util.Scanner;//完美数计算/*一个数等于它的真约数之和真约数=一个数的除它本身的其它约数eg 6=1+2+3*/public class PerfectNumber { public static void main(String[] args){ System.out.println("请输入完美数范围:"); Scanner scan=new Scanner(System.in); int n=scan.nextInt(); int i,j,s,k=0; int a[]=new int[100]; /* i 控制范围从0--n之间的数是否为完美数 j 控制0--i之间数 k 如果j是因数放在数组a中 s 计算因数的和就是这个数本身。 */ for( i=1;i<=n;i++){ k=0;//每次循环a数组下标从零开始 for(j=1;j<i;j++){ if(i%j==0){ a[k]=j; k++; } } s=0;//每此计算s都要清零 for(int z=0;z<k;z++){ s=s+a[z]; } if(s==i){ System.out.println(s); } } }}
算法二
计算比较大的完美数
//完美数/*根据完全数公式 大数学家欧几里德曾推算出完全数的获得公式:如果2^p-1质数,那么(2^p-1)X2^(p-1)便是一个完全数。 例如p=2,2^p-1=3是质数,(2^p-1)X2^(p-1)=3X2=6,是完全数。 例如p=3,2^p-1=7是质数,(2^p-1)X2^(p-1)=7X4=28,是完全数。*/public class PerfectNumber2 { //筛选法求素数 public void prime(int n){ long a[]=new long[n]; int j; for(int i=2;i<Math.sqrt(a.length);i++){ if(a[i]==0){ j=i*i; while(j<a.length){ a[j]=1; j=j+i; } } } //计算 for(int i=2;i<14;i++){ int p=(int) (Math.pow(2, i)-1); if(a[p]==0){ System.out.println(p*(int) Math.pow(2, i-1)); } } } public static void main(String[] args) { PerfectNumber2 p=new PerfectNumber2(); p.prime(50000000); }}
速率加快了不少 哈哈 第一次博客。
阅读全文
0 0
- JAVA求解完美数
- 完美数-java
- 【华为oj】完美数-JAVA
- java求完数(完全数 完美数)
- [JAVA]计算完美数并输出
- 完美数
- 完美数
- 完美数
- 完美数
- 完美数
- 完美数
- 完美数
- 完美数
- 完美数
- 完美数
- 完美数
- LeetCode-279. Perfect Squares | (JAVA) (完美平方数)
- 求完美数
- Android中部分修改字体和全局修改字体的方法
- 解决WebSocket 服务器 The WebSocket session [0] has been closed and no method...异常信息
- BZOJ3620 似乎在梦中见过的样子
- ARKit & OpenGL ES
- 可以输入也可以下拉选择的select
- 完美数-java
- uboot
- 基于Cisco Packet Tracer6.0网络协议分析实验第二节
- [Linux]Ubuntu终端彻底删除软件
- Andriod 软件与硬件调试 无线调试
- Linux下用户组、文件权限详解
- CCS811气体传感器
- spring事物管理
- 键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低输出到控制台