3个回答
展开全部
你看看 可以求出所有素数因子 比如数字是15 那么他的素数因子求的是:
3,5,1 如果本身是素数 那么求的就是 他本身和1
import java.util.Scanner;
public class shushu
{
/**
*
*/
public shushu()
{
// TODO Auto-generated constructor stub
}
public static void main(String[] args)
{
// TODO Auto-generated method stub
Scanner s = new Scanner(System.in);
int n = s.nextInt();
/* System.out.println(n + "的本身因子是:" + n); //数的本身也是他的因子
*/
int left = n;
int j = left;
System.out.print(n + "的素数因子是:");
while (j>=1)
{
int temp = j--;
if(left % temp == 0 && isSushu(temp))
{
System.out.print(temp) ;
if(left == 1)
break;
System.out.print(",");
left /= temp;
j = left;
}
}
}
/**
* TODO 判断某数是否素数
* @param n
* @return
* return: boolean
* author: zenglulin
* time: 下午02:13:40
*/
public static boolean isSushu(int n)
{
for (int j = 2; j < n; j++)
{
if(n %j == 0)
return false;
}
return true;
}
}
3,5,1 如果本身是素数 那么求的就是 他本身和1
import java.util.Scanner;
public class shushu
{
/**
*
*/
public shushu()
{
// TODO Auto-generated constructor stub
}
public static void main(String[] args)
{
// TODO Auto-generated method stub
Scanner s = new Scanner(System.in);
int n = s.nextInt();
/* System.out.println(n + "的本身因子是:" + n); //数的本身也是他的因子
*/
int left = n;
int j = left;
System.out.print(n + "的素数因子是:");
while (j>=1)
{
int temp = j--;
if(left % temp == 0 && isSushu(temp))
{
System.out.print(temp) ;
if(left == 1)
break;
System.out.print(",");
left /= temp;
j = left;
}
}
}
/**
* TODO 判断某数是否素数
* @param n
* @return
* return: boolean
* author: zenglulin
* time: 下午02:13:40
*/
public static boolean isSushu(int n)
{
for (int j = 2; j < n; j++)
{
if(n %j == 0)
return false;
}
return true;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因式分解还没有通用的有效算法,有一种公钥密码就是基于大数的因式分解的。你最好在
*用户指定数据* 加上更多限制。 下面是一种小数字的程序:
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
System.out.println("enter a number:");
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
analyse(i);
}
public static void analyse(int i) {
int j = 2;
while (i > 1) {
for (j = 2; j < i; j++) {
if (i % j == 0) {
System.out.println(j);
break;
}
}
i = i / j;
}
System.out.println(j);
}
}
*用户指定数据* 加上更多限制。 下面是一种小数字的程序:
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
System.out.println("enter a number:");
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
analyse(i);
}
public static void analyse(int i) {
int j = 2;
while (i > 1) {
for (j = 2; j < i; j++) {
if (i % j == 0) {
System.out.println(j);
break;
}
}
i = i / j;
}
System.out.println(j);
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
什么意思?用户输入一串数字,一次判断哪个是素数就输出?例如:123587,输出12357?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询