首页 > 其他分享 >2023/5/16

2023/5/16

时间:2023-05-16 21:12:12浏览次数:40  
标签:输出 temp 16 int 2023 longqidian 因子 printf

L1-006 连续因子 分数 20 作者 陈越 单位 浙江大学

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

输入格式:

输入在一行中给出一个正整数 N(1<N<231)。

输出格式:

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

输入样例:

630

 

输出样例:

3
5*6*7
 
#include<stdio.h>
#include<math.h>
int main()
{
    int n = 0;
    scanf("%d", &n);
    int i = 0,j=0, a = 0, sum=0,num = 0,temp=0,qidian=0,longqidian=0;
    int x = sqrt(n);//这里解释一下,为什么sqrt(n),因为我们最少的因子就两个为素数,假设这个不是素数,极限求最大的两个值相乘等于该数就是开根号,所以这里是节省运行时间,防止超时
    for (i = 2;i <= x;i++)
    {
        num = 0;
        sum = n;
        qidian = i;
        for (j = i;sum%j==0&&sum!=0;j++)
        {
            sum /= j;
            num++;
        }
        if (num > temp)
        {
            temp = num;//筛选最长因子个数
            longqidian = qidian;
        }
    }
    if (temp == 0)
        printf("1\n%d", n);
    else
    {
        printf("%d\n", temp);
        i = longqidian;
        while (i < longqidian + temp)
        {
            if (i != longqidian)
                printf("*");
            printf("%d", i);
            i++;
        }
    }
    return 0;
}

 

标签:输出,temp,16,int,2023,longqidian,因子,printf
From: https://www.cnblogs.com/wangxinyuan1108/p/17406814.html

相关文章

  • 5.16
    #include<iostream>usingnamespacestd;classBaseClass{public:   voidfn1();   voidfn2();};voidBaseClass::fn1(){   cout<<"调用基类的函数fn1()"<<endl;}voidBaseClass::fn2(){   cout<<"调用基类的函数fn2()&qu......
  • 建民打卡日记5.16
    一、问题描述对方不想和你说话,并向你扔了一串数……而你必须从这一串数字中找到“250”这个高大上的感人数字。二、流程设计在一行中输出第一次出现的“250”是对方扔过来的第几个数字(计数从1开始)。题目保证输出的数字在整型范围内。三、代码实现#include<iostream>usingn......
  • 2023.5.16 总结 AT_abc260_g
    atcoderAT_abc260_g题意一个点O可以影响到其它点,能影响到的点的坐标满足:(\((u,v)\)为当前点的坐标,\((x,y)为能影响到的点的坐标\))\(u\lex\)\(v\ley\)\((x-u)+\dfrac{(y-v)}{2}<M\)给\(q\)个询问,问每个点会被几个O给影响。思路题解算法标签差分,很恶......
  • 5月16日打卡
    习题4-10设计一个用于人事管理的“人员”类。由于考虑到通用性,这里只抽象出所有类型人员都具有的属性:编号、性别、出生日期、身份证号等。其中“出生日期”声明为一个“日期”类内嵌子对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、复制构造函数、内......
  • 5-16打卡-输入输出流
    #include<iostream>#include<fstream>//包含文件操作所需的头文件#include<iomanip>//包含格式输出所需的头文件usingnamespacestd;intmain(){charfilename[20];//定义一个字符数组存储文件名cout<<"请输入OFF文件的名称:"<<endl;cin>&g......
  • 总结20230516
    代码时间(包括上课)3h代码量(行):100行博客数量(篇):1篇相关事项:1、今天上午上的是实用英语阅读与翻译,讲的是上次作业的翻译。2、今天的第二节课上的是数据库原理,明白了登录名和数据库用户名以及数据库角色的概念。3、今天下午进行了Python的课堂的测试,题还算简单,挺快就写完了。......
  • 5.16每日总结
    今天思考了接下来的团队项目要完成的任务简单的了解和学习了一些关于文本数据处理的技术知识,对未来的项目改进思考了一些基本的框架,未来还将和团队成员对项目的成品和任务进行讨论和分工。......
  • 每日总结 5.16
    今日进行了python的学习。之后进行对于项目界面的优化处理,又进行广告的优化处理。<divclass="aside"id="aside"><spanid="s">10</span><span>秒后关闭</span>&nbsp;&nbsp;<!--<img......
  • 5-16-pta实验-文件的输入输出
    #include<bits/stdc++.h>usingnamespacestd;classDog{ private: intweight; intold; public: Dog(inta,intb):weight(a),old(b){}; intWeight(){ returnweight; } intOld() { returnold; } ~Dog(){}; };intmain(){Dogdog1(5,10);fst......
  • 5.16打卡
    一、问题描述:本节要研究孪生素数的问题,先来看看什么是孪生素数。所谓孪生素数指的是间隔为2的两个相邻素数,因为它们之间的距离已经近的不能再近了,如同李生兄弟一样,所以将这一对素数称为孪生素数。显然,最小的一对孪生素数是(1,3)。我们可以写出3~100以内的孪生素数,一共有8对,分别是(3......