分解质因数(解密源代码)

题目:将一个正整数分解质因数。例如:输入200,打印出200=2*2*2*5*5。

代码如下:

package javaclassics;

import java.util.Scanner;

public class ZhiYinShu {

static int n,k=2;
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
n=sc.nextInt();
System.out.println(n+"=");
ZhiYinShu f=new ZhiYinShu();
f.f(n);
}
public void f(int n){
while(k<=n){
if(k==n){
System.out.print(n);
break;
}else if(n>k&&n%k==0){
System.out.print(k+"*");
n=(n/k);
f(n);
break;
}else if(n>k&&n%k!=0){

k++;
f(n);
break;
}

}
}
}

时间: 2024-10-01 02:55:51

分解质因数(解密源代码)的相关文章

【Python】【demo实验17】【练习实例】【将一个正整数分解质因数】

题目:将一个正整数分解质因数.例如:输入90,打印出90=2*3*3*5. 我的源代码: #!/usr/bin/python # encoding=utf-8 # -*- coding: UTF-8 -*- # 将一个正整数分解质因数.例如:输入90,打印出90=2*3*3*5. a = int(input("please input the number:\n")) b = a # a 的因数集合 la = [] l = [] c = int(a*0.5)+2 print("

分解质因数模板

/*==================================================*| 分解质因数,可能有些地方需要改为long long \*==================================================*/ const int MAXN=100010; int prm[MAXN+1]; bool is[MAXN+1]; int getprm(int n){ int i, j, k = 0; int s, e = (int)(sqrt

java编程题 --分解质因数

package Solve; import java.util.Scanner; public class Solve { static Scanner scan = new Scanner(System.in); public static void main(String[] args) { System.out.println("请输入一个正整数:"); int num = scan.nextInt(); System.out.print(num + " = "

POJ 2773 Happy 2006 (分解质因数+容斥+二分 或 欧几里德算法应用)

Happy 2006 Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 10309   Accepted: 3566 Description Two positive integers are said to be relatively prime to each other if the Great Common Divisor (GCD) is 1. For instance, 1, 3, 5, 7, 9...are a

codevs 1792 分解质因数

1792 分解质因数 题目描述 Description 编写一个把整数N分解为质因数乘积的程序. 输入描述 Input Description 输入一个整数 N 输出描述 Output Description 输出 分解质因数 .拆成几个质数相乘的形式,质数必须从小到大相乘 样例输入 Sample Input 756 样例输出 Sample Output 756=2*2*3*3*3*7 #include<cstdio> #include<cmath> #include<str

代码实现:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5

import java.util.Scanner; /*题目:将一个正整数分解质因数.例如:输入90,打印出90=2*3*3*5. 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可. (2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n,重复执行第一步. (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步.*/ public class Test

分解质因数

package java算法; /** * 任意整数分解 题目:将一个正整数分解质因数.例如:输入90,打印出90=2*3*3*5. * 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可. * (2)如果n>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步. * (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步. * * @author to

uva10780(分解质因数)

可以直接用高精度来暴力求. 也可以不用高精度: 把m分解质因数,记录每个因数和它的次数.然后计算每个因数在n的阶乘里出现了多少次,再把这个次数除以它在m中的次数,就是可能的k值.取最小的k. #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<map> #include<set> #

分解质因数算法

分解质因数算法 1.从N开始递减,找到满足 : n%i ==0 && n是素数 -> result2.存result到数组,递归执行(n/result) var result = new Array(); var factor = function f(n){ if(n == 1){return ;} var n1 = n; while(n1>1){ if(isPrime(n1) && n % n1 == 0) {break;} n1--; } if(n1 ==