C语言-蓝桥杯2022年第十三届省赛真题-质因数个数

题目描述

给定正整数 n,请问有多少个质数是 n 的约数。

输入格式

输入的第一行包含一个整数 n。

输出格式

输出一个整数,表示 n 的质数约数个数。

样例输入

复制代码
396

样例输出

复制代码
3

提示

396 有 2, 3, 11 三个质数约数。

对于 30% 的评测用例,1 ≤ n ≤ 10000。

对于 60% 的评测用例,1 ≤ n ≤ 109。

对于所有评测用例,1 ≤ n ≤ 1016。

复制代码
#include<iostream>
#include<cmath>
using namespace std;
bool sort(long long n);
int main()
{
    long long n;
    int sum=0;
    cin>>n;
    if(n<=1) cout<<'0';
    if(sort(n)){//先行判断是否质数
        for(long long i=2;i<=sqrt(n)+1;i++){
            if(n%i==0){
                if(!sort(i)) sum++;
                if(!sort(n/i)&&n/i!=i) sum++;
            }
        }
        cout<<sum;
    }
    else cout<<'1';
    return 0;
}
bool sort(long long n)
{
    if(n==2) return false;
    if(n%2==0) return true;//除去偶数的判断
    for(long long j=3;j<=sqrt(n)+1;j+=2){
        if(n%j==0) return true;
    }//sqrt简化复杂度
    return false;
}
相关推荐
想做小南娘,发现自己是女生喵13 分钟前
第二周学习文档 Linux C 文件操作
linux·c语言·学习
Bluetooth73036 分钟前
c语言变量的存储类别
c语言
lhbweilai6 小时前
分析FreeRTOS内核对象API的源码实现(四)
c语言·stm32·单片机
inrichtt9 小时前
第八课时:SPI总线揭秘:四线全双工通信的奥
c语言·数据结构·stm32·单片机·嵌入式硬件
HPtiger10 小时前
数据结构——选择排序
数据结构·算法·排序算法
康实训10 小时前
老年评估仿真实训平台架构设计与老年人能力评估实训室教学落地实践
大数据·人工智能·算法·实训室·实训室建设
DongQiShanRen10 小时前
六根硬件映射(四):归属澄清、两处不一致与卷十一总表
开发语言·人工智能·算法·rust·哈希算法·集成学习
CCblandy10 小时前
雪花 ID 四个边界实测:时钟回拨重号 500 个,前端 JSON.parse 直接丢精度
后端·python·算法·性能优化·架构
丑梨数据10 小时前
信创环境里跑文档工具:格式兼容与本地合规的几个坑
数据结构·人工智能·算法·决策树·排序算法
erzong23112 小时前
Linux操作系统:线程概念与控制
linux·算法