博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
处女座的测验(一)
阅读量:4463 次
发布时间:2019-06-08

本文共 1002 字,大约阅读时间需要 3 分钟。

题目:

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
Special Judge, 64bit IO Format: %lld

题目描述 

处女座进行了一场c语言的考试,要求很简单,输出2000个正整数,并且满足以下条件:

1.       任意两个数互质

2.     任意两个数x,y,满足
,其中
为n的因子的个数
 
举例:6的因子有1,2,3,6,所以
τ(6)=4τ(6)=4

输入描述:

本题没有输入

输出描述:

2000行,每行一个正整数

输出的每个整数都必须在1-4*108之间
如果有多组答案,输出任意一组即可。

题解:

考点:质数,构造

τ 是积性函数,x,y互质,τ(x⋅y)=τ(x)⋅τ(y) 只需保证τ(x)≥4即可,找出前4000个质数构造即可。取第1个质数个第 4000个质数相乘,取第2个质数和第3999个质数相乘……这样最大的数在 4e8以内。

代码:

1 #include 
2 using namespace std; 3 #define maxn 1000000 4 int pri[maxn+5]; 5 void getprime() 6 { 7 int i,j; 8 for (i=2;i<=maxn;i++) 9 {10 if (pri[i]==0) pri[++pri[0]]=i;11 for (j=1;j<=pri[0] && pri[j]<=maxn/i;j++)12 {13 pri[pri[j]*i]=1;14 if (i%pri[j]==0) break;15 }16 }17 }18 19 int main()20 {21 getprime();22 for (int i=1;i<=2000;i++)23 {24 printf("%d\n",pri[i]*pri[4001-i]);25 }26 return 0;27 }
View Code

 

转载于:https://www.cnblogs.com/liuyongliu/p/10316559.html

你可能感兴趣的文章
Android DevArt6:Android中IPC的六种方式
查看>>
PMP学习感想
查看>>
Zookeeper全解析——Paxos作为灵魂
查看>>
集合-强大的集合工具类:java.util.Collections中未包含的集合工具
查看>>
CSS清除浮动
查看>>
数据库基础-数据库常用命令总结
查看>>
java8 按对象属性值排序
查看>>
【转帖】国产x86处理器KX-6000发布
查看>>
04-js的运算符
查看>>
第三天 while循环 及其用法
查看>>
Delphi 10 seattle 去掉自带的代码连接线
查看>>
构建高并发高可用的电商平台架构实践(转)
查看>>
Geometry Imager Viewport Filter
查看>>
九度oj 题目1025:最大报销额
查看>>
数字及字符串
查看>>
【转载】OmniGraffle (二)基础绘图和模具
查看>>
一些提高开发效率的 Category
查看>>
拓扑排序基础题——排序
查看>>
转:iphone 申请证书
查看>>
Python就业方向
查看>>