处女座的测验(二)

2024-06-17 21:48
文章标签 测验 处女座

本文主要是介绍处女座的测验(二),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【题目描述】

现在处女座顺利的完成了测验,处女座想要知道知道自己输出的结果是否正确。他希望知道自己有自己输出的数中有多少对是不满足要求的。

更具体的,处女座想知道下面程序段的答案

int main()
{int n;cin>>n;for(int i=1;i<=n;i++)cin>>a[i];int ans=0;for(int i=1;i<=n;i++)for(int j=i+1;j<=n;j++)if(τ(a[i]∗a[j])≤10)ans=ans+1;cout<<ans<<endl;return 0;
}

其中为 n 的因子的个数

【输入描述】

两行

第一行一个整数n

第二行n个整数,a1,a2,…,an

2<=n<=2000, 1<=ai<=3*10^8

【输出描述】

一行,一个整数ans

【样例】

示例1

输入
7
34 45 23 12 63 23 90
输出
3

【备注】

不保证任意两个整数互质

思路:

先打素数表,然后用 vector 存储每个数的素因子以及素因子的幂数,最后用 map 存储 x*y 的素因子的最高次数用题目给的公式求出 ? 即可

要注意的是,如果两个数中有个数的 ? 大于 10,那么需要剪枝

【源代码】

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<string>
#include<cstring>
#include<cmath>
#include<ctime>
#include<algorithm>
#include<utility>
#include<stack>
#include<queue>
#include<vector>
#include<set>
#include<map>
#define PI acos(-1.0)
#define E 1e-6
#define MOD 1000000007
#define INF 0x3f3f3f3f
#define N 100001
#define LL long long
using namespace std;
int a[N];
int prime[N],cnt;
bool bprime[N];
vector<int> power[N];//幂数
vector<int> num[N];//素因子
void make_prime()
{memset(bprime,true,sizeof(bprime));bprime[0]=false;bprime[1]=false;for(int i=2;i<=N;i++){if(bprime[i]){prime[cnt++]=i;for(int j=i*2;j<=N;j+=i)bprime[j]=false;}}
}
int main(){make_prime();int n;scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",&a[i]);if(a[i]==1){//数为1的情况power[i].push_back(1);num[i].push_back(1);}else{for(int j=0;prime[j]*prime[j]<=a[i];j++){//枚举a[i]的素因子if(a[i]%prime[j]==0){num[i].push_back(prime[j]);//记录素因子int cnt=0;while(a[i]%prime[j]==0){cnt++;a[i]/=prime[j];}power[i].push_back(cnt);//记录幂数}}//考虑a[i]自身if(a[i]!=1){num[i].push_back(a[i]);power[i].push_back(1);}}}int res=0;for(int i=1;i<=n;i++){for(int j=i+1;j<=n;j++){map<int,int> mp;//存储x*y素因子的最高次数for(int k=0;k<num[i].size();k++)mp[num[i][k]]+=power[i][k];for(int k=0;k<num[j].size();k++)mp[num[j][k]]+=power[j][k];int t=1;map<int,int>::iterator it;for(it=mp.begin();it!=mp.end();it++)t=t*(it->second+1);if(t<=10)//剪枝,不考虑t大于10的数res++;}}printf("%d\n",res);return 0;
}

 

这篇关于处女座的测验(二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1070563

相关文章

[Algorithm][综合训练][体育课测验(二)][合唱队形][宵暗的妖怪]详细讲解

目录 1.体育课测验(二)1.题目链接2.算法原理详解 && 代码实现 2.合唱队形1.题目链接2.算法原理详解 && 代码实现 3.宵暗的妖怪1.题目链接2.算法原理详解 && 代码实现 1.体育课测验(二) 1.题目链接 体育课测验(二) 2.算法原理详解 && 代码实现 说明:单纯积累一题[拓扑排序]用于加强印象 能识别模型,并且写出代码 vector<i

JavaScript 小测验 toString

toString方法 以下console.log会输出什么? const obj = {}const fun = () => {}console.log(obj.toString === Object.toString)console.log(fun.toString === Function.toString)console.log(obj.toString === Object.p

艾森克人格测验,在企业中的应用@人力资源管理HR@人才测评

艾森克人格测试,能够快速了解到人格的特征,早期的艾森克原本只是应用于专业疾病测试领域的方法(现在医院的精神科和心理科,也大量在应用艾森克)。 现在的艾森克人格测验,已经帮助众多企业经营者减少管理压力,在人才的选拔,人力资源管理中,发挥出了巨大的作用。 艾森克的三个人格度在数学统计、行为观察方面,都已经得到大量的数据验证,目前被广泛应用于医学、司法、教育等领域,适合各种人群测试。 企业版团测

笔试题8 -- 利用拓扑排序解决体育课测验

笔试题8 – 利用拓扑排序解决体育课测验 原题重现 题目链接:体育课测验(二)_牛客 (nowcoder.com) 体育课共有 numProject 个考核项目,编号为 0 到 numProject−1。考核中每两个项目被划分为一组得到分组数组 groups[i],现规定若想完成项目 groups[i] [0],必须先完成 groups[i] [1]。保证所有分组互不相同,若分组情况能顺利

诺瓦星云入职认知能力SHL测验Verify职业性格问卷OPQ可搜索带解析求职题库

欢迎您开启诺瓦星云的求职旅程 恭喜您进入测评环节,接下来您需要作答两个测验,分别是职业性格问卷OPQ和认知能力测验Verify,总共用时大约1小时,祝您作答顺利! 【华东同舟求职】由资深各行业从业者建立的一站式人才服务网络平台,现阶段目标是“提升全市场各行业岗位信息的流动性和透明度”。我们接受众多行业机构的直接委托发布,并尽力通过各种方法搜寻高价值岗位信息。事实上,我们

处女座和小姐姐

【题目描述】 既然昨天晚上处女座已经训练了,明天才要交作业,那今天就是平淡无奇要上课的一天了。 然而处女座也想自己的小姐姐了,可是这节课是老师安排座位,处女座坐在(1,1),而小姐姐坐在(n,m)。他们之间只能通过传纸条的方式来交流感情。对于处女座而言,他上课不想过度分心,因此并不想传纸条,只在那里趁机折千纸鹤。 老师上课喜欢用"开火车"的方式让大家轮流回答问题,显然处女座作为(1,1)位,会被

处女座与重修费

【题目描述】 期末考试结束了,处女座发现很多人挂了大物,只能等着第二年重修,还要交400元的重修费。处女座突然想起有个学长和他讲过,如果学校哪一年缺钱了,那一年的大物试卷就会特别难。现在处女座有了所有人的成绩,处女座想知道如果所有挂科的人都在第二年重修,学校能赚多少重修费? 挂科是指一门课的分数小于60分。 【输入描述】 第一行一个整数n,表示考试的人数。 第二行n个整数,表示每个人的成绩。 1

处女座的百日理财计划

【题目描述】 处女座为了有更充足的资金和小姐姐一起玩耍,于是就放"高利贷"给小姐姐,一般小姐姐一周就会还钱,而处女座只要10%的利率,这样算下来,如果可以利滚利的话,1元钱经过1年(360天)可以变成51.43元呢,想起来就非常美滋滋哦! 不过总是借钱给小姐姐并不是长远之策,处女座开始了自己的百日理财计划。处女座在第一天的早上可以获得1000元的启动资金。之后在每天的早上,他会回收借给别人的到期

处女座和小姐姐(二)

【题目描述】 课上处女座成功将纸条传给了小姐姐,约下午和小姐姐一起逛街。他们坐在公交车上一起欣赏窗外的广告牌,每一个广告牌都有一个编号,而处女座的视野范围是有限的,每次只能看到连续的p个广告牌。由于处女座是数学大师,他用O(1)的时间算出来了他看到的广告牌编号的积mod P的值并记录了下来,直到坐车到了商场。 商场里有定制手环的地方,他可以定制一个长度为k的手环,但是选号是收费的,而处女座把家教

处女座的比赛

【题目描述】 经过了训练、资金等多方面的准备,处女座终于可以去比赛了!比赛采用codeforces赛制,也就意味着可以插人。现在有一道字符串的题目,处女座在room里看到一个用hash做的,于是决定把它hack掉。这个人的核心代码如下: const int mod=9983;mul[0]=p;mul[1]=q;mul[2]=r;for (int i=0;i<26;i++)in_dex[i