JAVA学习笔记——分解质因数,与完数

来源:互联网 发布:定向增发数据 编辑:程序博客网 时间:2024/06/13 21:56

刚开始学习JAVA,网上看了视频学习,然后自己就照着编了两个程序,第一个可实现,把一个数分解成几个质数相乘的形式;第二个可实现,在给定的数范围类,找出所有完数。

只为留下印记,代码如下:

//分解质因数

import java.io.StreamCorruptedException;
import java.util.Scanner;

import javax.swing.text.AbstractDocument.LeafElement;

public class Main {

public static int[] End_number(int n,int m)
{
int count=0;
int k=m-n;
int a=0;
int[] number=new int[k];
for(int i=n;i<=m;i++)
{

int b=i;
for(int j=1;j<b;j++)
{
if(i%j==0)
{
a=a+j;
}
}
if(a==i)
{
number[count]=i;
count++;
}
a=0;
}
return number;
}

public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
int n;
int m;
n=in.nextInt();
m=in.nextInt();
if(n>=1 & m<=1000 & n<m)
{
if(End_number(n,m)[0]==0)
{
System.out.println();
}
for(int i=0;i<End_number(n,m).length;i++)
{
if(End_number(n,m)[i] !=0)
{
System.out.print(End_number(n,m)[i]);
if(End_number(n,m)[i+1] != 0)
{
System.out.print(" ");
}
}
else
{
break;
}
}
}
in.close();
}
}


//完数

import java.io.StreamCorruptedException;
import java.util.Scanner;

import javax.swing.text.AbstractDocument.LeafElement;

public class Main {

public static int[] prime_factor(int a)
{
int count=0;
int[] number=new int[a];
while(a%2==0)
{
number[count]=2;
count++;
a=a/2;
}

if(a>2)
{
for(int i=3;i<=a;i++)
{
while(a%i==0)
{
number[count]=i;
a=a/i;
count++;
}
}

}
return number;
}

public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
int a;

a=in.nextInt();
if(a>=2 & a<=2000)
{
System.out.print(a+"=");
for(int i=0;i<prime_factor(a).length;i++)
{
if(prime_factor(a)[i] !=0)
{
System.out.print(prime_factor(a)[i]);
if(prime_factor(a)[i+1] != 0)
{
System.out.print("x");
}
}
else
{
break;
}
}
}

in.close();
}
}

0 0
原创粉丝点击