2023CSP-J复赛冲刺 模拟赛一

2023CSP-J复赛模拟一

题目一:数字降级

时间限制:1秒        内存限制:256M

题目描述

数字每一次降级都表示将一个数字除以一次它的任意一个因子。请问最少几次操作可以将一个数字n ,降级成一个质数?
例如:数字n=8,第一种方案为选择8的因子2,然后用8除以2,那么n=4,继续选择8的因子2,重复操作;第二种方案为选择8的因子4,将8除以4,得到n=2。那么选择次数最少操作,将次
数输出


输入格式


输入一行,包含一个数字 。


输出格式


输出一行,包含一个答案。

输入样例

8

 输出样例 

 1

数据范围


在80%数据下:           2<=n<=10^6
在100%数据下:         2<=n<=10^10

解题思路

1.若n是合数,因为n>=2,所以n可以被因式分解为a^x+b^y+……的形式,a,b为质数

那么n=a*[a^(x-1)+b^y+……],只要除以它除a的一次方外的因子,就可以得到一个质数,故为1

2.若n是质数,则不需改变,故为0。

综上,这道题题意为判断n是否是质数

AC代码
#include<iostream>
using namespace std;
int main(){
    long long n;
    cin >> n;
    for(long long i=2; i*i<=n; i++){
        if(n%i == 0){
            cout << 1;
            return 0;
        }
    }
    cout << 0;
    return 0;
}

题目二:分组

时间限制:1秒        内存限制:256M

题目描述

小可召集大家一起来玩游戏!

小可总共召集了 n 位玩家,每位玩家有一个专属分数 a ​i​​,现在需要将 n 为玩家进行分组,分组之后每个组将获得一个小组专属分数 b ​i​​。小组专属分数为小组内每位玩家专属分数组成的集合中没有出现过的最小的自然数。比如第一组中每个人分数为1,2,那么小组分数为0,第二组中每个人的分数为0,1,2,那么小组分数为3

为了提高胜率,肯定要让∑b ​i​​ 最大,请输出最大的∑b ​i​​ 。

输入格式
第一行包含一个整数 n,表示 n 为玩家。

第二行输入 n 个非负整数,表示a ​i​​。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值