精华内容
下载资源
问答
  • 求素因子

    2019-02-08 11:16:00
    一个数的素因子(数很大) #include<bits/stdc++.h> #define ll long long using namespace std; ll s[1020],k; void prime(long long m)//一个数的素因子 { ll i; k=0; for(i=2;i*i<=m;i++)...

    求一个数的素因子(数很大)

    #include<bits/stdc++.h>
    #define ll long long
    using namespace std;
    
    ll s[1020],k;
    void prime(long long m)//求一个数的素因子
    {
        ll i;
        k=0;
        for(i=2;i*i<=m;i++)
        {
            if(m%i==0)
            {
                s[k++]=i;
                while(m%i==0)
                    m/=i;
            }
        }
        if(m>1)
            s[k++]=m;
    }

    求多个数的素因子(数不是很大)

    素因子保存在vector中

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    #include <vector>
    #include <map>
    #include <cmath>
    using namespace std;
    typedef long long ll;
    const int maxn=1e5+5;
    vector<ll> p[maxn];
    
    void getpri(ll kk)
    {
        ll x=kk;
        for(ll i=2;i*i<=x;i++)
        {
            if(x%i==0)
            {
                p[kk].push_back(i);
                while(x%i==0)
                    x/=i;
            }
        }
        if(x>1)p[kk].push_back(x);
    }

     

    转载于:https://www.cnblogs.com/wangtao971115/p/10358186.html

    展开全文
  • uva11859nim游戏 + 求素因子个数.cpp
  • 1717求素因子

    2008-06-09 22:47:00
    求素因子 Time Limit: 1 Seconds Memory Limit: 32768 K Total Submit:589 Accepted

    求素因子

    Time Limit: 1 Seconds     Memory Limit: 32768 K

    Total Submit:589     Accepted:327


    Description

    任一整数x,找出它的素因子并以如下格式输出:
    72=2*2*2*3*3
    120=2*2*2*3*5

    Input

    任意整数x (-2100000000<x<2100000000)

    Output

    按照上述格式输出它的素因子(并换行回车)

    Sample Input

    -120

     

    Sample Output

    -120=-2*2*2*3*5

     

    Source:

    #include<iostream.h>
    #include<cmath>
    int main()
    {
    	int x,w;
    	w=0;
    	cin>>x;
    	if(x<0)
    	{
    		w=1;
    		x=-x;
    	}
    	long i,k=sqrt(x);
    	i=2;
    	if(w==1)
    		cout<<"-"<<x<<"=-";
    	else
    		cout<<x<<"=";
    	while(i<=k)
    	{
    		if(x%i==0)
    		{
    			cout<<i<<"*";
    			x/=i;
    			k=sqrt(x);
    			continue;
    		}
    		i++;
    	}
    	cout<<x<<endl;
    	return 0;
    }
    

     

    展开全文
  • 因为要计算最小移动次数,所以可以考虑贪心进行计算,同时可以看出的是x是a中所有元素的因子,考虑这点进行计算,因为要将所有数凑成有公因子x,所以考虑对sum进行素因子分解进行计算,因为x一定能分解成素因子,将a...

    因为要计算最小移动次数,所以可以考虑贪心进行计算,同时可以看出的是x是a中所有元素的因子,考虑这点进行计算,因为要将所有数凑成有公因子x,所以考虑对sum进行素因子分解进行计算,因为x一定能分解成素因子,将a中每一个元素对素因子取模,计算移动次数,从大到小采用贪心的计算方法。

    #include<cstdio>
    #include<algorithm>
    #include<cmath>
    
    using namespace std;
    
    const int MAXN=1e5+10;
    #define INF 0x3f3f3f3f3f3f3f3f
    
    typedef long long ll;
    
    int a[MAXN],b[MAXN];
    ll prime[MAXN];
    int num,n;
    
    bool cmp(ll a,ll b){
        return a>b;
    }
    
    ll cal(ll mi){
        int i;
        ll tot=0;
        for(i=0;i<n;i++){
            b[i]=a[i]%mi;
            tot+=b[i];
        }
        sort(b,b+n,cmp);
        i=0;
        ll ans=0;
        while(tot&&i<n){
            ans+=mi-b[i];
            tot-=mi;
            i++;
        }
        return ans;
    }
    
    void sushu(ll sum){
        num=0;
        for(ll i=2;i<=sqrt(sum);i++){
            if(sum%i==0) prime[num++]=i;
            while(sum%i==0) sum/=i;
        }
        prime[num++]=sum;
    }
    
    int main(){
        int t;
        scanf("%d",&t);
        while(t--){
            ll sum=0;
            scanf("%d",&n);
            for(int i=0;i<n;i++){
                scanf("%d",&a[i]);
                sum+=a[i];
            }
            sushu(sum);
            ll ans=INF;
            for(int i=0;i<num;i++){
                if(sum%prime[i]==0){
                    ll tmp=cal(prime[i]);
                    ans=min(ans,tmp);
                }
            }
            printf("%lld\n",ans);
        }
        return 0;
    }
    
    
    
    

     

    展开全文
  • fjnu 1717 求素因子

    2008-02-08 22:09:00
    Description任一整数x,找出它的素因子并以如下格式输出: 72=2*2*2*3*3 120=2*2*2*3*5 Input任意整数x (-2100000000Output按照上述格式输出它的素因子(并换行回车)Sample Input-120 Sample Output-120=-2*2*2*3*5...

    Description

    任一整数x,找出它的素因子并以如下格式输出:
    72=2*2*2*3*3
    120=2*2*2*3*5

    Input

    任意整数x (-2100000000<x<2100000000)

    Output

    按照上述格式输出它的素因子(并换行回车)

    Sample Input

    -120

     

    Sample Output

    -120=-2*2*2*3*5

    KEY:一个因子一个因子搜过去,还要注意要格式的打印

     

    Source:

    #include
    < iostream >
    using   namespace  std;

    int  N;
    int  a[ 100 ];
    int  m = 1 ;

    void  find()
    {
        
    if(N<0) N=-N;
        
    int i;
        
    for(i=2;i<=N&&N!=1;i++)
        
    {
            
    while(N%i==0)
            
    {
                a[m
    ++]=i;
                N
    =N/i;
            }

        }

    }


    int  main()
    {
        
    int i;
        cin
    >>N;
        cout
    <<N<<"=";
        
    if(N<0) cout<<"-";
        find();
        
    for(i=1;i<m-1;i++)
        
    {
            cout
    <<a[i]<<"*";
        }

        cout
    <<a[i]<<endl;
    }

     
    展开全文
  • CodeForces 546D (求素因子个数)

    千次阅读 2016-06-01 10:42:37
    就是一个整数质因子个数的题目, 阶乘我们不需要算,我们知道在a>b的时候, b!都约掉了,那么我们只需计算出每个数的质因数有几个, 然后前缀和计算出1~n的质因子之和, Input 2 3 1 6 3 Output 2 5 *************...
  • 给出两个数x,y,有多少组p,q,满足gcd(p,q) = x 且 lcm(p,q) = y。 注意:pair(p, q) 和 pair(q, p)是两种方案。 思路: 两个很易得的结论: lcm(x,y)/ gcd(x,y) = (x / gcd(x,y)) * (y / gcd(x,y)) lcm(x,...
  • 出a, a - 1, a - 2........b + 1这些整数能被拆分成多少个素数相乘,把每个的拆分结果相加起来。例如 a = 6, b = 2. 那么结果=1(3=3) + 2(4=2*2) + 1(5=5) + 2(6=2*3) = 5 【解题思路】:素数筛法,先把每个数能...
  • 用素数筛框架最小素因子,只需做一些改变 在这#include<stdio.h> #define MAX_N 1000 int prime[MAX_N + 5]; void init() { for (int i = 2; i <= MAX_N; i++) { if (prime[i]) continue;//还是用素数...
  • 最大素因子

    2021-07-04 10:24:37
    当数i能够整除a且i为素数,那么i就是数a的素因子,最大素因子就是取所有a的素因子中的最大值 实现 穷举法 最简单粗暴的办法就是穷举,i从a开始自减1,每次判断是否能够整除a并且是素数,找到的第一个i就是最大的。...
  • 素因子

    2019-11-03 21:40:27
    //求素因子 public class Main{ public static void main(String[] args) { Scanner in=new Scanner(System.in); int n=in.nextInt(); for(int i=2;i*i<n;i++) { while(n%i=...
  • 素因子分解 就是把一个数化成
  • 合数的素因子

    2019-09-13 22:59:42
    /*这是我编的合数素因子的函数 *貌似比网上的算法高级一些 * 请求大家的指正*/ #include<stdio.h> #include<math.h> void tran( int N ) { int i; for(...
  • 题目说明:给定某个正整数N,素因子分解结果,即给出其因式分解表达式 N = p1^k1* p2^k2*…*pm^km。输入格式说明:输入long int范围内的正整数N。输出格式说明:按给定格式输出N的素因式分解表达式,即 N = p1^...
  • 思路分析 ...同样的方法,可以整数的素因子,并且更加简单。 代码如下 代码分析见注释 #include<iostream> using namespace std; #define max_n 1000000 int prime[max_n + 5] = {0}; int...
  • 给定整数的所有素因子 1. 题目:给定整数的所有素因子 2. 要求:输入一个整数,出其所有素因子,并表现为乘积方式,因子的算法用子程序来实现。例如,输入480,输出480=2*2*2*2*2*3*5 C++代码如下 1...
  • 最大素因子

    2017-05-29 17:58:15
    GreyAnts最近正在学习数论中的素数,但是现在他遇到了一个难题:给定一个整数n,要求我们出n的最大素因子的序数,例如:2的序数是1,3的序数是2,5的序数是3,以此类推. 研究数论是需要很大的耐心的,为了惩罚那些没有...
  •  给定一个正整数n,一个正整数p,满足p仅包含n的所有素因子,且每个素因子的次数不大于1 输入格式  一个整数,表示n 输出格式  输出一行,包含一个整数p。 样例输入 1000 样例输出 10 数据规模和约定 ...
  • 素因子去重

    2021-03-04 19:37:15
     给定一个正整数n,一个正整数p,满足p仅包含n的所有素因子,且每个素因子的次数不大于1 输入格式  一个整数,表示n 输出格式  输出一行,包含一个整数p。 package c算法训练1; import java.util.HashSet; ...
  • 她决定从每个正整数取出一个素因子。但是,kotori有强迫症,她不允许两个不同的正整数取出相同的素因子。 她想知道,最终所有取出的数的和的最小值是多少? 注:若a%k==0,则称k是a的因子。若一个数有且仅有两个...
  • 题目说明:给定某个正整数N,素因子分解结果,即给出其因式分解表达式 N = p1^k1* p2^k2*…*pm^km。输入格式说明:输入long int范围内的正整数N。输出格式说明:按给定格式输出N的素因式分解表达式,即 N = p1^...
  • 素因子分解

    千次阅读 2020-11-11 19:54:32
    给定某个正整数 N,素因子分解结果,即给出其因式分解表达式 N=p​1​k1*p​2​k​2​​⋯p​m^​k​m,其中pi为素因子并要求由小到大输出,指数ki为pi的个数;当ki为1即因子pi只有一个时不输出ki。 输入格式: ...
  • C语言实现素因子分解

    2021-01-20 05:55:33
    给定某个正整数N,素因子分解结果,即给出其因式分解表达式 N = p1^k1 * p2^k2 *…*pm ^km。 输入格式说明: 输入long int范围内的正整数N。 输出格式说明: 按给定格式输出N的素因式分解表达式,即 N = p1^...
  • HDU 2710 最大素因子

    2017-01-14 22:26:22
    题解:此题理解题意就很简单了,意思就是一组数据中有最大素因子的数,注意能被本身整除的素数也是素因子,1也是。比如3=3*1 还有一个坑:就是此题是多组实例,否则wa到死。 代码(此方法很巧妙,类似开灯...
  • #include #include #include #include #define MAXN 10 #define C 16381 using namespace std; typedef __int64 I64; ... //min表示n的最小素因子 ... //找出n的最小素因子 ...//n的最大素因子 } return 0; }

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,514
精华内容 6,605
关键字:

如何求素因子