【 HDU - 1215 】七夕节(数论,约数和公式)

题干:

七夕节那天,月老来到数字王国,他在城门上贴了一张告示,并且和数字王国的人们说:"你们想知道你们的另一半是谁吗?那就按照告示上的方法去找吧!" 
人们纷纷来到告示前,都想知道谁才是自己的另一半.告示如下: 



数字N的因子就是所有比N小又能被N整除的所有正整数,如12的因子有1,2,3,4,6. 
你想知道你的另一半吗? 

Input

输入数据的第一行是一个数字T(1<=T<=500000),它表明测试数据的组数.然后是T组测试数据,每组测试数据只有一个数字N(1<=N<=500000). 

Output

对于每组测试数据,请输出一个代表输入数据N的另一半的编号. 

Sample Input

3
2
10
20

Sample Output

1
8
22

解题报告:

     约数和,可以打表,可以直接算。

AC代码1:(打表)(93ms,打表的i那层循环到500000/2,则78ms)

#include<bits/stdc++.h>using namespace std;
int num[500000 + 5],n;
int main()
{for(int i = 1; i<=500000; i++) {for(int j = 2*i; j<=500000; j+=i) {num[j] += i;}}int t; cin>>t;while(t--) {scanf("%d",&n);printf("%d\n",num[n]);}return 0 ;} 

AC代码2:(不打表,Tsqrtn的复杂度)(296ms)

#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int MAX = 1e5+10;
int p[MAX];
int a[MAX];
ll qpow(ll a,ll b) {ll ans = 1;while(b){if(b & 1) ans *= a;b >>= 1;a *= a;}return ans;
}
int main()
{int t;scanf("%d",&t);while(t--){int n;scanf("%d",&n);int cnt = 0;int tmp = n;//       memset(a,0,sizeof a);for(int i = 2; i * i <= n; i++) {if(tmp % i == 0) {p[++cnt] = i;a[cnt]=0 ; while(tmp % i == 0) {a[cnt]++;tmp /= i;}}}if(tmp != 1) {p[++cnt] = tmp;a[cnt] = 1;}ll ans = 1;for(int i = 1; i<=cnt; i++) {ans *= (qpow(p[i],a[i]+1) - 1) / (p[i]-1);}printf("%lld\n",ans-n);//因为最后要输出的是除去自己的,因为是因子,因子不包括自己。 }return 0;
}

总结:  这题你如果对a数组进行直接memset,那恭喜你,超时了。  因为T太大了,不能直接memset,只能初始化到sqrt才可以。这是比较坑的一个地方。

附:Tsqrt分解素数时的另一种简洁做法(省掉一个数组)

void getprimefactor(long long n) { //计算幂次方;int cas=0;for(int i=0; i<len&&prime[i]*prime[i]<=n; i++) {while(n%prime[i]==0) { //可以整除;factor[cas]++;n/=prime[i];}if(factor[cas] != 0)//就是进入了while里面的;cas++;}if(n>1)factor[cas]=1; //就是因为上面for条件的原因;prime[i]*prime[i]<=n当不满足这个条件的时候就应该还有一个素数的一次方
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/441564.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机专业小三门要求,最新小三门选科要求有啥变化?附对比表

原标题&#xff1a;最新小三门选科要求有啥变化&#xff1f;附对比表刚刚&#xff0c;上海市教育考试院公布了2020年拟在沪招生普通高校、军队院校本科专业选考科目要求&#xff0c;让我们今年的选科范围有哪些变化&#xff1f;说明&#xff1a;1 选考范围为不限&#xff0c;说…

【51Nod - 1215 】数组的宽度 (单调栈 或 分治 或 单调队列,算贡献,需去重)

题干&#xff1a; N个整数组成的数组&#xff0c;定义子数组aii..ajj的宽度为&#xff1a;max(ai..aj) - min(ai..aj)&#xff0c;求所有子数组的宽度和。 Input 第1行&#xff1a;1个数N&#xff0c;表示数组的长度。(1 < N < 50000) 第2 - N 1行&#xff1a;每行1…

云昆明理工大学 计算机复试,2012年昆明理工大学计算机考研复试试题(回忆版)...

2012年昆明理工大学计算机考研复试试题(年昆明理工大学计算机考研复试试题(回忆版)回忆版)本试题由http://doc.xuehai.net网友kenden23提供笔试C(总共30分)一、40题选择题(20分)1.派生类调用构造函数时&#xff0c;基类的构造函数先调用&#xff1b;2. int a1,b1,c1,d1,e1;if((…

*【CodeForces - 122C 】Lucky Sum (bfs记录状态,二分查找,有坑)(或分块)

题干&#xff1a; Petya loves lucky numbers. Everybody knows that lucky numbers are positive integers whose decimal representation contains only the lucky digits 4 and 7. For example, numbers 47, 744, 4 are lucky and 5, 17, 467 are not. Let next(x) be the…

模拟量使用计算机电缆,DJYPVRP计算机电缆型号规格

计算机电缆用途&#xff1a;本产品适用于额定电压30/500v及以下防干扰性能要求较高的电子计算机、检测仪器、仪表的连接。使用条件&#xff1a; 计算机电缆(电压等级&#xff1a;0.45/0.75KV&#xff0c;企标)本产品使用于交流额定电压为300/500及以下&#xff0c;对于防干扰性…

【CodeForces - 155C】Hometask (字符串,思维,贪心,熟悉句式)(总结)

题干&#xff1a; Sergey attends lessons of the N-ish language. Each lesson he receives a hometask. This time the task is to translate some sentence to the N-ish language. Sentences of the N-ish language can be represented as strings consisting of lowercas…

html 报表插件,轻量级图形报表插件JSCharts

插件描述&#xff1a;JScharts是一个用于在浏览器直接绘制图表的JavaScript工具包。JScharts支持柱状图、圆饼图以及线性图&#xff0c;可以直接将这个图插入网页&#xff0c;JScharts图的数据可以来源于XML文件、JSON文件或JavaScript数组变量。2017-05-09更新&#xff1a;改为…

算法讲解 -- 二分图之 匈牙利算法

匈牙利算法是由匈牙利数学家Edmonds于1965年提出&#xff0c;因而得名。匈牙利算法是基于Hall定理中充分性证明的思想&#xff0c;它是部图匹配最常见的算法&#xff0c;该算法的核心就是寻找增广路径&#xff0c;它是一种用增广路径求二分图最大匹配的算法。 -------等等&…

html 表格文字颜色 css,CSS 表格-JavaScript中文网-JavaScript教程资源分享门户

使用 CSS 可以使 HTML 表格更美观。CompanyContactCountryAlfreds FutterkisteMaria AndersGermanyBerglunds snabbkpChristina BerglundSwedenCentro comercial MoctezumaFrancisco ChangMexicoErnst HandelRoland MendelAustriaIsland TradingHelen BennettUKKniglich EssenP…

计算机专业表白文案,深情表白文案40句

深情表白文案40句时间&#xff1a;2020-05-17 22:41:51 分类&#xff1a;经典语句 | 适合表白的句子 | Word文档下载深情表白文案40句导语&#xff1a;你是我生活的全部&#xff0c;是我一生拼搏奋斗的赌注。为了你披荆斩棘&#xff0c;为了你艰辛受苦&#xff0c;为了你众生…

【HRBUST - 1054 】Brackets! Brackets! (括号匹配,思维,STL栈)

题干&#xff1a; There are six kinds of brackets: ‘(‘, ‘)’, ‘[‘, ‘]’, ‘{’, ‘}’. dccmx’s girl friend is now learning java programming language, and got mad with brackets! Now give you a string of brackets. Is it valid? For example: “(([{}]))…

计算机中有关数及编码的知识,计算机中有关数及编码的知识

计算机中有关数及编码的知识1.计算机是智能化的电器设备计算机就其本身来说是一个电器设备&#xff0c;为了能够快速存储、处理、传递信息&#xff0c;其内部采用了大量的电子元件&#xff0c;在这些电子元件中&#xff0c;电路的通和断、电压高低&#xff0c;这两种状态最容易…

ACM技巧 - O(1)快速乘(玄学) 总结

ll fast_mult(ll a,ll b,ll mod) {return (a*b - (ll)((long double)a/mod*b)*modmod)%mod; } 参考&#xff1a;https://blog.csdn.net/m0_38013346/article/details/81435369 注意事项&#xff1a; double可能会挂&#xff0c;最好long double。u,v>p可能会挂&#xff0…

html盒子阴影只设置左右,只在容器一边或两边显示盒子阴影

实现方案首先定义一个有具体宽高的盒子&#xff0c;然后正确定位:after伪类。效果[图片上传中...(image.png-8e8e17-1593570486291-0)]底部阴影代码:Document.box-shadow {background-color: #FF8020;width: 160px;height: 90px;position: relative;}.box-shadow:after {conten…

【 HRBUST - 1055】Single(模拟,dp,打表)(总结)

题干&#xff1a; There are many handsome single boys in our team, for example, me. Some times, we like count singles. For example, in the famous “November 11th” (11.11), there are four singles ,so, single is actually 1. For another example, there are 2 …

一年级下册数学计算机应用题,【小学一年级数学练习题】小学生和机器人

【www.jmzhongda.cn--学生个人工作总结】一个小学生在认真地做作业。这是一系列加、减、乘、除的四则应用计算题&#xff0c;难度相当大&#xff0c;特别那几个繁分数题&#xff0c;计算起来太繁杂。他额头上不知不觉地渗出细雨般的汗珠来了。正在这个时候&#xff0c;不知从什…

【EOJ Monthly 2018.10 - A】oxx 的小姐姐们(模拟,水题,填充矩阵,输出格式有坑)

题干&#xff1a; Time limit per test: 1.0 seconds Memory limit: 512 megabytes oxx 和他的小姐姐&#xff08;们&#xff09;躺在图书馆前的大草坪上看星星。 有强迫症的 oxx 想要使得他的小姐姐们正好躺成一块 nm 的长方形。 已知小姐姐的形状是 1p 的长方形&#xf…

数据结构数组计算机中的应用,2018考研计算机:数据结构数组和广义表复习重点...

2018考研计算机&#xff1a;数据结构数组和广义表复习重点2017-08-17 16:00|考研集训营《数据结构(C语言版)》复习重点在二、三、六、七、九、十章&#xff0c;考试内容两大类&#xff1a;概念&#xff0c;算法&#xff0c;自从计算机专业课统考以后&#xff0c;专业课考试题型…

【HDU - 5672】String(尺取法)

题干&#xff1a; There is a string SS.SS only contain lower case English character.(10≤length(S)≤1,000,000)(10≤length(S)≤1,000,000) How many substrings there are that contain at least k(1≤k≤26)k(1≤k≤26) distinct characters? Input There are mul…

【HDU - 2030 】汉字统计 (C语言汉字编码,长知识)

题干&#xff1a; 统计给定文本文件中汉字的个数。 Input 输入文件首先包含一个整数n&#xff0c;表示测试实例的个数&#xff0c;然后是n段文本。 Output 对于每一段文本&#xff0c;输出其中的汉字的个数&#xff0c;每个测试实例的输出占一行。 [Hint:]从汉字机内码的…