精华内容
下载资源
问答
  • 连续因子

    2021-01-11 13:24:40
    7-6 连续因子 (20分) 一个正整数 N 的因子中可能存在若干连续的数字。例如 630 可以分解为 3×5×6×7,其中 5、6、7 就是 3 个连续的数字。给定任一正整数 N,要求编写程序求出最长连续因子的个数,并输出最小的...

    7-6 连续因子 (20分)

    一个正整数 N 的因子中可能存在若干连续的数字。例如 630 可以分解为 3×5×6×7,其中 5、6、7 就是 3 个连续的数字。给定任一正整数 N,要求编写程序求出最长连续因子的个数,并输出最小的连续因子序列。

    输入格式:

    输入在一行中给出一个正整数 N(1<N<2^​31)。

    输出格式:

    首先在第 1 行输出最长连续因子的个数;然后在第 2 行中按 因子1因子2……*因子k 的格式输出最小的连续因子序列,其中因子按递增顺序输出,1 不算在内。

    输入样例:

    630

    输出样例:

    3
    567

    思路

    从2开始遍历,若可以作为n的因子,就依次往后判断是否是因子(是则临时个数加一),找到每次寻找连续因子的最长个数(并记录起始因子)。个数为0则为素数,否则便依次输出。

    代码

    #include<iostream>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    typedef long long ll;
    ll sum, start;//最长连续因子的个数,开始时的因子
    int main(){
    	ll n;
    	cin >> n;
        for(ll i=2;i*i<n;i++){
            if(n%i!=0)  continue;
            ll j=i,t=n,num=0;
            while(t%j==0){
                t=t/j;
                j++;
                num++;
            }
            if(sum<num){
                sum=num;start=i;
            }
        }
            
    	if (sum == 0)//素数
    		cout << "1" << endl << n << endl;
    	else{
    		cout << sum << endl;
    		for (int i = 0; i < sum; i++){
    			if (i == sum - 1)
    				cout << start + i << endl;
    			else
    				cout  << start + i<<"*";
    		}
    	}
     
    	return 0;
    }
    
    展开全文
  • PTA连续因子

    2021-03-06 20:16:19
    连续因子 一个正整数 N 的因子中可能存在若干连续的数字。例如 630 可以分解为 3×5×6×7,其中 5、6、7 就是 3 个连续的数字。给定任一正整数 N,要求编写程序求出最长连续因子的个数,并输出最小的连续因子序列。...

    连续因子
    一个正整数 N 的因子中可能存在若干连续的数字。例如 630 可以分解为 3×5×6×7,其中 5、6、7 就是 3 个连续的数字。给定任一正整数 N,要求编写程序求出最长连续因子的个数,并输出最小的连续因子序列。

    输入格式:
    输入在一行中给出一个正整数 N(1<N<2^​31)。

    输出格式:
    首先在第 1 行输出最长连续因子的个数;然后在第 2 行中按 因子1因子2……*因子k 的格式输出最小的连续因子序列,其中因子按递增顺序输出,1 不算在内。

    输入样例:
    630
    输出样例:
    3
    567
    题解
    因为n<2的31次,由于13的阶乘大于2^31,所以连续因子最长不超过12个,那么可以直接暴力求解,按照连续因子的个数,从多到少暴力循环,一旦找到可以被n整除的,就是最长的连续因子。如果找不到连续,就输出n本身。
    代码

    #include<iostream>
    #include<cmath>
    #include<algorithm>
    #include<cstring>
    #include<vector>
    #include<queue>
    #include<string>
    using namespace std;
    #define ll long long
    const int mod=998244353;
    
    	ll n,m,s,e,len,k,p,w;
    	cin>>n;
    	 w=sqrt(n);
    	 for(int len=12;len>=1;len--){//连续因子个数
    	 	for(s=2;s<=w;s++){
    	 		ll ans=1;
    	 		for(int i=s;i-s<=len-1;i++){
    	 			ans*=i;//连续因子乘积
    			 }
    			 if(n%ans==0){//能整除就找到
    			 	printf("%d\n%d",len,s);
    			 
    			 for(int i=s+1;i-s<=len-1;i++){
    			 	printf("*%d",i); }
    			 	return 0;
    			 
    		 }
    	 }
    
    }printf("1\n%d", n);
        return 0;
    
    }
    	
    
    展开全文
  • pta连续因子

    2021-03-04 20:00:38
    给定任一正整数 N,要求编写程序求出最长连续因子的个数,并输出最小的连续因子序列。 输入格式: 输入在一行中给出一个正整数 N(1<N<2 ​31 ​​ )。 输出格式: 首先在第 1 行输出最长连续因子的个数;...

    一个正整数 N 的因子中可能存在若干连续的数字。例如 630 可以分解为 3×5×6×7,其中 5、6、7 就是 3 个连续的数字。给定任一正整数 N,要求编写程序求出最长连续因子的个数,并输出最小的连续因子序列。
    输入格式:
    输入在一行中给出一个正整数 N(1<N<2
    ​31
    ​​ )。

    输出格式:
    首先在第 1 行输出最长连续因子的个数;然后在第 2 行中按 因子1因子2……*因子k 的格式输出最小的连续因子序列,其中因子按递增顺序输出,1 不算在内。

    输入样例:
    630
    输出样例:
    3
    567

    #include<iostream>
    #include<cmath>
    using namespace std;
    int main(){
        int num;
        cin>>num;
        int end=sqrt(num);
        int maxl=0,start=0;
        for(int i=2;i<=end;i++){ 
            int temp=num;
            int templ=0;
            int tempstart=i;
            while(temp%tempstart==0){
                temp/=tempstart++;
                templ++;
            }
            if(templ>maxl){
                maxl=templ;
                start=i;
              //  cout<<start<<endl;
            }
        }
        if(maxl){
            cout<<maxl<<endl;
            for(int i=0;i<maxl;i++){
                cout<<start+i;
                if(i!=maxl-1){
                    cout<<"*";
                }
            }
            cout<<endl;
        }else
            cout<<"1"<<endl<<num<<endl;
        return 0;
    }
    
    展开全文
  • java连续因子

    2020-03-22 11:30:00
    7-21 连续因子 (20分) 一个正整数 N 的因子中可能存在若干连续的数字。例如 630 可以分解为 3×5×6×7,其中 5、6、7 就是 3 个连续的数字。给定任一正整数 N,要求编写程序求出最长连续因子的个数,并输出最小的...

    7-21 连续因子 (20分)
    一个正整数 N 的因子中可能存在若干连续的数字。例如 630 可以分解为 3×5×6×7,其中 5、6、7 就是 3 个连续的数字。给定任一正整数 N,要求编写程序求出最长连续因子的个数,并输出最小的连续因子序列。

    输入格式:
    输入在一行中给出一个正整数 N(1<N<2​31)。

    输出格式:
    首先在第 1 行输出最长连续因子的个数;然后在第 2 行中按 因子1因子2……*因子k 的格式输出最小的连续因子序列,其中因子按递增顺序输出,1 不算在内。

    输入样例:
    630

    输出样例:
    3
    567

    import java.util.Scanner;
    public class Main{
    	public static void main(String[] args){
    		Scanner sc=new Scanner(System.in);
    		int N=sc.nextInt();   //输入所求的数字 
    		int count=0;    //计数器 
    		int start=0;    //标记起始位置 
    		int m_count=0;   //最大的因子个数 
    		for(int i=2;i<=Math.sqrt(N);i++){
    			count=0;
    			int t=N;
    			int j=i;
    			while(t%j==0){
    				t=t/j;
    				j++;
    				count++;
    			}
    			if(count>m_count){
    				start=i;
    				m_count=count;
    			}	
    		}
    		if(m_count!=0){
    			System.out.printf("%d\n",m_count);
    			for(int i=0;i<m_count;i++){
    				System.out.printf("%d",start+i);
    				if(i!=m_count-1)System.out.printf("*");
    			}
    		}
    		/*
    	 	  千万不要忘记素数这种情况,如果输入的值是素数,那么它的因子就是 1 和它本身了,
    	  	 但是题目要求1不能打印,所以我们最终只需输出它本身就可以了 
    		*/ 
    		else System.out.printf("%d\n%d",1,N);
    	}
    }
    
    展开全文
  • CCCC 连续因子

    2019-09-22 19:21:29
    给定任一正整数N,要求编写程序求出最长连续因子的个数,并输出最小的连续因子序列。 输入格式: 输入在一行中给出一个正整数N(1<N<231)。 输出格式: 首先在第1行输出最长连续因子的个数;然后在第2行...
  • 给定任一正整数N,要求编写程序求出最长连续因子的个数,并输出最小的连续因子序列。 输入格式: 输入在一行中给出一个正整数N(1<N<2​31​​)。 输出格式: 首先在第 1 行输出最长连续因子的个数;然后...
  • 给定任一正整数 N,要求编写程序求出最长连续因子的个数,并输出最小的连续因子序列。 输入格式: 输入在一行中给出一个正整数 N(1<N<2 ​31 ​​ )。 输出格式: 首先在第 1 行输出最长连续因子的个数;...
  • PTA 连续因子 c++

    2020-08-03 11:00:43
    给定任一正整数 N,要求编写程序求出最长连续因子的个数,并输出最小的连续因子序列。 输入格式: 输入在一行中给出一个正整数 N(1<N<2^​31​​ )。 输出格式: 首先在第 1 行输出最长连续因子的个数;然后...
  • 01-连续因子

    2020-02-28 19:18:00
    给定任一正整数N,要求编写程序求出最长连续因子的个数,并输出最小的连续因子序列。 输入格式: 输入在一行中给出一个正整数N(1<N<2​31​​)。 输出格式: 首先在第 1 行输出最长连续因子的个数;然后...
  • 连续因子(PTA)

    千次阅读 2020-10-16 20:48:35
    给定任一正整数 N,要求编写程序求出最长连续因子的个数,并输出最小的连续因子序列。 输入格式: 输入在一行中给出一个正整数 N(1<N<2​31​​)。 输出格式: 首先在第 1 行输出最长连续因子的个数;然后在...
  • C语言:连续因子

    千次阅读 2018-02-21 15:32:51
    给定任一正整数N,要求编写程序求出最长连续因子的个数,并输出最小的连续因子序列。输入格式:输入在一行中给出一个正整数N(1&lt;N&lt;231)。输出格式:首先在第1行输出最长连续因子的个数;然后在第2行...
  • 连续因子 Java版 PTA

    2021-03-14 16:31:16
    给定任一正整数 N,要求编写程序求出最长连续因子的个数,并输出最小的连续因子序列。 输入格式: 输入在一行中给出一个正整数 N。 输出格式: 首先在第 1 行输出最长连续因子的个数;然后在第 2 行中按 因子1因子2...
  • 连续因子(java)

    2021-02-20 22:55:32
    给定任一正整数 N,要求编写程序求出最长连续因子的个数,并输出最小的连续因子序列。 输入格式: 输入在一行中给出一个正整数 N(1<N<2^31)。 输出格式: 首先在第 1 行输出最长连续因子的个数;然后在第 2 ...
  • L1-006 连续因子

    2020-10-12 22:39:26
    L1-006 连续因子 (20分) 一个正整数 N 的因子中可能存在若干连续的数字。例如 630 可以分解为 3×5×6×7,其中 5、6、7 就是 3 个连续的数字。给定任一正整数 N,要求编写程序求出最长连续因子的个数,并输出最小的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 59,608
精华内容 23,843
关键字:

连续因子