hdu acmsteps 2.1
来源:互联网 发布:mysql的nvl函数 编辑:程序博客网 时间:2024/04/30 00:11
2.1.1 最小公倍数
搜索一下就可以过,不过我貌似悲剧的WA一次
2.1.2 How many primenumbers
简单的判定一下就好
bool isprime(int a)
{
intm=(int)sqrt(a);
for(inti=2;i<=m;i++)
if(a%i==0)returnfalse;
return true;
}
2.1.3 Cake
详见另一日志(转别人的):http://blog.csdn.net/ouxijv/article/details/6665779
2.1.4 Largest prime factor
这个题挺巧妙的。首先用数组存储每一个数字最大的素数编号。然后从2开始判断,如果一个数是素数,那么它之后的所有它的倍数都赋予当前的编号值。这样扫描一遍之后数组中存储的就是其对应的最大的素数编号。
for(int i=2;i<=M;i++)
{
if(a[i]!=0)continue;
elseif(isprime(i))
{
for(intj=1;j*i<=M;j++)
a[j*i]=order;
order++;
}
}
2.1.5 又见GCD
小小的搜索一下就可以了
for(i=2,c=b*i;gcd(a,c)!=b;i++)
c=b*i;
2.1.6 七夕节
其实思想和2.1.4是一样的,只不过把编号,换成叠加
for(i=1;i<=M/2;i++)
for(j=2;j*i<=M;j++)
a[j*i]+=i;
2.1.7 找新朋友
和前面一样也是找到一个约数之后将其倍数都标记,这样能减少时间。直接搜应该也可以吧(只是感觉)。
for(i=2;i<n;i++)
if(a[i]==0&&n%i==0)
for(j=i;j<n;j+=i)
a[j]=1;
for(i=1;i<n;i++)
if(a[i]==0)ans++;
2.1.8 The Area
数学题。自己算吧。实在不会算。百度之吧。。。。。
最后我想说csdn的在线编辑 真心垃圾的一逼。。。无语。。还不让用离线编辑。。。想逼我挪窝?
- hdu acmsteps 2.1
- hdu acmsteps 2.1.3 cake
- hdu acmsteps 1.3.1
- hdu acmsteps 1.2.2
- hdu acmsteps 1.3.6
- hdu acmsteps 2.2
- hdu acmsteps 2.3
- hdu 1050 acmsteps moving tables
- hdu ACMSteps 5.3.8 Rotate
- HDOJ---ACMSteps---2.1.1最小公倍数
- HDOJ---ACMSteps---2.1.4Cake
- hdu acmsteps 2-1-3相遇周期
- hdu Acmsteps Moving tables解题报告
- HDOJ---ACMSteps---2.1.3相遇周期
- HDOJ---ACMSteps---2.1.5Largest prime factor
- HDOJ---ACMSteps---2.1.6整数对
- HDOJ---ACMSteps---2.1.7The area
- HDOJ---ACMSteps---2.1.2How many prime numbers
- 赵总说说(待续)
- 最全面的java面试题-----是你更好的掌握java知识
- asp.net打包布署
- js对象, 数组 , json 互相转换
- 解决oracle 没有监听器的方案
- hdu acmsteps 2.1
- 在Visual C++ 中调用Excel 2000
- C语言-链表
- m3u8文件结构-英文文档地址
- 宏定义和const的用法
- C语言通过ODBC读写Excel表格文件
- rails 3.1 assets route error
- 算法导论学习笔记——基数排序
- boost::shared_ptr是个好东西