一个数的最小因子的连乘

/**
     * @des 一个数的最小因子的连乘
     * 2*2*2*2*2*2*5*5*5*5*5*5*=1000000
     * @param a
     */
    private static void min(int a) {
        int b =a;
        StringBuilder stringBuilder = new StringBuilder();
        int i = 2;
        while (true) {
            if (b % i == 0) {
                stringBuilder.append(i + "*");
                b /= i;
            } else
                i++;
            if (b == 1)
                break;
        }
        System.out.println(stringBuilder.substring(0,stringBuilder.length())+"="+a);
    }

原文地址:https://www.cnblogs.com/wushenghfut/p/12637221.html

时间: 2024-11-02 22:44:13

一个数的最小因子的连乘的相关文章

求一个数的质因子

private static void prime(int i){ int j = 2; while(true){ while(i%j == 0 && i != j){ System.out.println("Prime num " + j); i = i/j; } if(i == j){ System.out.println("Prime num " + j); break; } j++; } } private static void prime

校招试题 n个数里最小的k个 stringstream运用

找出n个数里最小的k个 输入描述: 每个测试输入包含空格分割的n+1个整数,最后一个整数为k值,n 不超过100. 输出描述: 输出n个整数里最小的k个数.升序输出 输入例子1: 3 9 6 8 -10 7 -11 19 30 12 23 5 输出例子1: -11 -10 3 6 7 #include<bits/stdc++.h> using namespace std; const int maxn = 110; int num[maxn]; int i=0; string s; strin

C语言找出大于一个数的最小回文数的代码

下面代码内容是关于C语言找出大于一个数的最小回文数的代码,希望能对码农们有用途. #include <stdio.h>#include <stdlib.h>#include <string.h> void main(){char data[10] = {0}, res[10] = {0}, state[10] = {0}, len = 0, pos, bit = 0;scanf("%s",data); len = strlen(data); pos

hdu.5211.Mutiple(数学推导 &amp;&amp; 在logn的时间内求一个数的所有因子)

Mutiple Accepts: 476 Submissions: 1025 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) 问题描述 wld有一个序列a[1..n], 对于每个1≤i<n, 他希望你求出一个最小的j(以后用记号F(i)表示),满足i<j≤n, 使aj为ai的倍数(即aj mod ai=0),若不存在这样的j,那么此时令F(i) = 0 保证1≤n≤10000,1≤

LightOj1024 - Eid (求n个数的最小公约数+高精度)

题目链接:http://lightoj.com/volume_showproblem.php?problem=1024 题意:给你n(2<=n<=1000)个数, 然后求n个数的最小公倍数,每个数的大小是1---10000;所以答案会很大,可能达到1000个4位数相乘:所以结果很大,将近4000位; 所以一定会涉及到高精度运算:同时我们也不能直接循环求最小公倍数:我们可以把一个数分解成多个质数相乘,然后找到所有数中,出现的质数最多的那个对应的次方,然后再把结果乘起来即可; 例如样例 4 5 6

(hdu step 2.1.5)七夕节(球一个数的所有因子之和)

题目: 七夕节 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 4249 Accepted Submission(s): 1499   Problem Description 七夕节那天,月老来到数字王国,他在城门上贴了一张告示,并且和数字王国的人们说:"你们想知道你们的另一半是谁吗?那就按照告示上的方法去找吧!"人们纷纷来到告示前

C语言辗转相除法求2个数的最小公约数

辗转相除法最大的用途就是用来求两个数的最大公约数. 用(a,b)来表示a和b的最大公约数. 有定理: 已知a,b,c为正整数,若a除以b余c,则(a,b)=(b,c). (证明过程请参考其它资料) 例:求 15750 与27216的最大公约数. 解: ∵27216=15750×1+11466 ∴(15750,27216)=(15750,11466) ∵15750=11466×1+4284 ∴(15750,11466)=(11466,4284) ∵11466=4284×2+2898 ∴(11466

算法:找出 n 个数中最小的 k 个数

最简单的方法是将n个元素排序,取出最小的k个元素.这个算法的时间复杂度为 O(nlgn). 然而在输入的n个元素互异的情况下,利用最大堆,我们可以获得时间复杂度为 O(nlgk)的算法. 1 #include <stdio.h> 2 3 #define N 128 4 5 int heap[N], max_size, cur_pos = 1; 6 7 void adjust(int i) { // bottom up 8 int x = heap[i]; 9 int p = i / 2; 10

汇编语言实现求两个数的最小公约数,平方差,各占和的百分比

按下列要求编程: (1)输入两个小于100的十进制正整数. (2)求出这两个数的所有公约数. (3)求出这两个数的平方差,若是负的要输出负号. (4)计算两个数各占和的百分比,并且按照“ %”的格式输出(小数点后保留两位). (5)数据的输入和结果的输出都要有必要的提示,且提示独占一行. (6)要使用到子程序. ? 源代码: 1 data segment 2 hh db 0dh,0ah,'$' 3 m1 db 'please enter a number:',0dh,0ah,'$' 4 m2 d