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;
}
相关推荐
qeen8721 分钟前
【算法笔记】简单贪心
c++·笔记·算法·贪心算法
ting945200032 分钟前
动手学深度学习(PyTorch版)深度详解(10): 优化算法 全解
人工智能·pytorch·深度学习·算法
ulias2121 小时前
leetcode热题 - 5
数据结构·算法·leetcode
Funny_AI_LAB1 小时前
Naval最新播客谈“氛围编码”:Vibe Coding 开启“一人独角兽”时代
人工智能·算法·语言模型·agi
如何原谅奋力过但无声1 小时前
【灵神高频面试题合集04-05】二分查找
数据结构·python·算法·leetcode
我不是懒洋洋1 小时前
【数据结构】排序算法(直接插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序、归并排序、计数排序)
c语言·数据结构·c++·经验分享·算法·排序算法
MediaTea1 小时前
ML:逻辑回归的基本原理与实现
人工智能·算法·机器学习·数据挖掘·逻辑回归
辛苦才能1 小时前
数据结构--排序--插入排序(C语言,重点排序面试和比赛都会考察)
c语言·数据结构·面试
SuperByteMaster10 小时前
keil 工程 .gitignore配置文件
c语言
超级码力66610 小时前
【Latex文件架构】Latex文件架构模板
算法·数学建模·信息可视化