2024年4月12日饿了么春招实习试题【第一题:质数和合数】-题目+题解+在线评测【模拟】

embedded/2025/2/14 5:50:52/

2024年4月12日饿了么春招实习试题【第一题:质数和合数】-题目+题解+在线评测【模拟】

  • 题目描述:
    • 输入描述
    • 输出描述
    • 样例
  • 解题思路一:质数+合数=除去1的所有正整数
  • 解题思路二:java
  • 解题思路三:c++

题目描述:

塔子哥有一个数组,她想知道这个数组不同的质数和不同的合数共有多少个。

合数是指在大于1的整数中除了能被1和本身整除外,还能被其他数 (0除外) 整除的数。

输入描述

第一行入一个整数 1 < = n < = 2 × 1 0 5 1<=n<=2\times 10^5 1<=n<=2×105表示数组长度。 第二行输入 n个整数表示数组 a i ( 1 < = a i < = 2 × 1 0 5 ) a_i(1<=a_i<=2\times 10^5) ai(1<=ai<=2×105)

输出描述

输出一个整数。

样例

输入

3
20 2 4

输出

3

说明

不同的合数有20和4,质数有2,所以有3种。

OJ链接:
https://codefun2000.com/p/P1816

解题思路一:质数+合数=除去1的所有正整数

除了1以外,一个大于0的整数要么是质数要么是合数,所以只需要计算集合的元素数量即可。如果数组包含1,则减去一个元素。

n = int(input())
nums = list(map(int, input().split()))
st = set(nums)
# if 1 in st:
#     print(len(st) - 1)
# else:
#     print(len(st))
print(len(st) - (1 if 1 in st else 0))

时间复杂度:O(n)
空间复杂度:O(n)

解题思路二:java

import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;public class UniqueIntegers {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();Set<Integer> sett = new HashSet<>();for (int i = 0; i < n; i++) {int value = scanner.nextInt();sett.add(value);}int count = sett.size();if (sett.contains(1)) {count -= 1;}System.out.println(count);}
}

时间复杂度:O(n)
空间复杂度:O(1)

解题思路三:c++

#include <iostream>
#include <set>
using namespace std;
int main() {int n;cin >> n;set<int> sett;for (int i = 0; i < n; i++) {int value;cin >> value;sett.insert(value);}int count = sett.size();if (sett.find(1) != sett.end()) {count--;}cout << count << endl;return 0;
}

时间复杂度:O(n)
空间复杂度:O(1)


http://www.ppmy.cn/embedded/2236.html

相关文章

Centos 更换yum国内源的命令 -- yum更新速度太慢问题

【Linux】yum | 更新为国内源 | 删除源 | 删除repo | CentOS7_linux如何删除repo文件-CSDN博客

【JAVA基础篇教学】第八篇:Java中List详解说明

博主打算从0-1讲解下java基础教学&#xff0c;今天教学第八篇&#xff1a;Java中List详解说明。 在 Java 编程中&#xff0c;List 接口是一个非常常用的集合接口&#xff0c;它代表了一个有序的集合&#xff0c;可以包含重复的元素。List 接口提供了一系列操作方法&#xff0c;…

区块链知识总结——比特币中的密码学原理

比特币中的密码学原理&#xff1a; 比特币的本质&#xff1a;crypto-currency. 比特币用到密码学中的两个功能&#xff1a; 1.哈希函数&#xff08;cryptographic hash function&#xff09; 三个重要性质&#xff1a; &#xff08;1&#xff09;抗碰撞性collison resista…

FebHost:为什么注册.BE比利时域名?

.be 是比利时的国家代码顶级域名&#xff08;ccTLD&#xff09;&#xff0c;通常用于与该国有关的网网站。这个域名为那些希望在线上建立与比利时有关联系的个人、公司和组织提供了一个重要的网络标识。 .be 域名于1988年创建&#xff0c;由.BE域名注册机构管理&#xff0c;这…

微信小程序英文版:实现一键切换中英双语版(已组件化)

已经重新优化代码做成了组件&#xff0c;需要可自取&#xff1a;https://github.com/CrystalCAI11/wechat-language-compoment 所有操作都打包在组件里不需要在额外的地方添加代码&#xff0c;直接在你需要的页面里导入组件&#xff0c;再在对应页面的onLoad()里set文本就行了。…

css复合选择器

前言 本文是我学习过程中对复合选择器这一方面知识的总结。 内容包括&#xff1a;后代&#xff0c;子元素&#xff0c;并集&#xff0c;链接伪类&#xff0c;focus伪类选择器的知识点。 复合选择器简介 可以理解为&#xff0c;更加简便&#xff0c;更加精确的基础选择器组合。…

若依框架后台管理系统_修改后台管理密码

若依框架后台管理系统_修改后台管理密码 1. 找见加密函数&#xff1a; /*** 生成BCryptPasswordEncoder密码** param password 密码* return 加密字符串*/public static String encryptPassword(String password){BCryptPasswordEncoder passwordEncoder new BCryptPasswordE…

新迭科技现已加入2024快递物流展邀您现场参观

参展企业介绍 上海新迭科技有限公司是一家从事技术服务,技术开发,技术咨询等业务的公司&#xff0c;成立于2022年04月29日&#xff0c;公司坐落在上海市&#xff0c;企业的经营范围为:一般项目&#xff1a;技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广&#xf…