首页 > 其他分享 >NC224933 漂亮数

NC224933 漂亮数

时间:2023-08-25 15:58:09浏览次数:47  
标签:prime vis int 漂亮 leq 素数 NC224933

题目链接

题目

题目描述

小红定义一个数满足以下条件为“漂亮数”:

  1. 该数不是素数。

  2. 该数可以分解为2个素数的乘积。

4 是漂亮数,因为 4=2*2

21 是漂亮数,因为 21=3*7

30 不是漂亮数,因为 30=235

73 不是漂亮数。因为 73 本身即是素数。

输入 \(l\) 和 \(r\) ,请你输出 \([l,r]\) 闭区间中有多少个漂亮数。

输入描述

第一行输入一个正整数 \(t\) ,代表有 \(t\) 次询问

两个正整数 \(l\) 和 \(r\) ,用空格隔开。

\(1 \leq t \leq 10^5\)
\(1 \leq l \leq r \leq 10^8\)

输出描述

共输出 \(t\) 行,每行为一个整数,代表 \(l\) 到 \(r\) 中漂亮数的数量。

示例1

输入

1
150 200

输出

12

题解

知识点:筛法,前缀和。

我们可以考虑线性筛的过程中,判断一个数是否是由一个素数 \(i\) 的素数倍 \(j\) 筛掉的,此时 \(j\) 是最小质因子,\(i\) 是另一个质因子,于是这个数就是符合条件的数。

最后,我们用前缀和维护一下询问即可。

时间复杂度 \(O(n)\)

空间复杂度 \(O(n)\)

代码

#include <bits/stdc++.h>
using namespace std;
using ll = long long;

const int N = 1e8 + 7;
bool vis[N];
int f[N];
vector<int> prime;
void get_prime(int n) {
    for (int i = 2;i <= n;i++) {
        if (!vis[i]) prime.push_back(i);
        for (auto j : prime) {
            if (i * j > n) break;
            vis[i * j] = 1;
            if (!vis[i]) f[i * j] = 1;
            if (!(i % j)) break;
        }
    }
}

bool solve() {
    int l, r;
    cin >> l >> r;
    cout << f[r] - f[l - 1] << '\n';
    return true;
}

int main() {
    std::ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    int t = 1;
    cin >> t;
    get_prime(1e8);
    for (int i = 1;i <= 1e8;i++) f[i] += f[i - 1];
    while (t--) {
        if (!solve()) cout << -1 << '\n';
    }
    return 0;
}

标签:prime,vis,int,漂亮,leq,素数,NC224933
From: https://www.cnblogs.com/BlankYang/p/17657128.html

相关文章

  • 14.4K Star,一款外观漂亮、运行快速、动画细腻的开源免费UI组件库
    之前给大家推荐了很多后台模版,有读者希望推荐一些跟通用的好看组件,毕竟出了后台还有很多其他场景嘛。所以,今天继续给大家推荐一个广受好评的UI组件库:NextUI主要特性NextUI的主要目标是简化开发流程,为增强的用户体验提供美观且适应性强的系统设计。它有以下几点核心特性:可个......
  • 如何快速画出一幅漂亮的架构图
    这篇文章总结了常用的架构图类型,可以借鉴笔者提供的模板,快速地产出符合业务需要的架构图。为什么要画好一幅架构图?一幅漂亮的架构图既是创作者的深度结构化思考和表达,对于读者来说也更加容易理解架构所要表达的意思。然而不擅长画图的程序员,在大脑里已经有了思路,如何快速能够......
  • 如何快速画出一幅漂亮的架构图
    这篇文章总结了常用的架构图类型,可以借鉴笔者提供的模板,快速地产出符合业务需要的架构图。为什么要画好一幅架构图?一幅漂亮的架构图既是创作者的深度结构化思考和表达,对于读者来说也更加容易理解架构所要表达的意思。然而不擅长画图的程序员,在大脑里已经有了思路,如何快速能够......
  • 如何快速画出一幅漂亮的架构图
    这篇文章总结了常用的架构图类型,可以借鉴笔者提供的模板,快速地产出符合业务需要的架构图。为什么要画好一幅架构图?一幅漂亮的架构图既是创作者的深度结构化思考和表达,对于读者来说也更加容易理解架构所要表达的意思。然而不擅长画图的程序员,在大脑里已经有了思路,如何快速能够......
  • 36种漂亮的CSS3网页按钮Button样式
    <!DOCTYPEHTML><htmllang="en-US"><head><metacharset="UTF-8"><title>36种漂亮的CSS3网页按钮Button样式</title><styletype="text/css">body{background:#f5......
  • HJ45 名字的漂亮度
    1.题目读题HJ45 名字的漂亮度 考查点 2.解法思路 代码逻辑 具体实现首先,我们需要定义一个方法来计算一个字符串的漂亮度。漂亮度是指字符串中每个字母出现的次数乘以它在字母表中的位置,然后求和。例如,字符串"ABC"的漂亮度是11+22+3*3=14。我们可以用一......
  • C#自定义checkBox开关按钮控件,设计漂亮美观的UI按钮
    第一步:先准备开关按钮要使用到的背景图片,一张是开启的,一张是关闭的,如下图: 一共有6种款式,大家也可以全部加进去    然后将这些图片作为资源文件添加到项目中,如下图: 第二步、新建用户控件,命名为:ButtonCheck.cs ButtonCheck.cs代码如下:///<su......
  • [MAUI]用纯C#代码写两个漂亮的时钟
    @目录时钟1绘制锯齿表盘绘制指针绘制沿路径文本时钟2绘制表盘绘制指针项目地址谷歌在2021年5月份推出的Android12给我们带来了新的UI设计规范MaterialYou,你是否已经体验到了MaterialYou设计的魅力了呢?在原生主屏幕启动器中,有一个时钟小部件。这个小部件可以选择表盘风格。......
  • 形容女性漂亮的英文:beautiful、elegant、attractive、lovely、pretty
    形容女性漂亮的英文:beautiful、elegant、attractive、lovely、pretty。1、beautiful英[?bju:t?fl]美[?bjut?f?l]adj.美丽的,美好的;极好的;[例句]Shewasaverybeautifulwoman她是个大美女。2、elegant英[?el?g?nt]美[??l?ɡ?nt]adj.(人或其举止)优美的;漂亮的;简炼的;简洁的;[......
  • 【JMETER】生成漂亮的多维度的HTML报告
    JMeter:生成漂亮的多维度的HTML报告$cdjmeter/bin$jmeter-n-tE:/Study/Jmeter/HTTP-Request.jmx-lE:/Study/Jmeter/result.jtl-e-oE:/Study/Jmeter/ResultReport-n:以非GUI形式运行Jmeter-t:source.jmx脚本路径-l:result.jtl运行结果保存路径(.jtl),此文件必须不......