hdu 2964 Prime Bases (数学:算不上太水)
来源:互联网 发布:淘宝杰胜体育 编辑:程序博客网 时间:2024/05/21 09:23
感觉还是比较容易的,就是输出的时候可能比较恶心
有些人可能会想着生成一对素数,但其实没有必要
只要先写个小程序找到某个素数使得之前所有素数的乘积大于32为整型最大值即可
这样的话可知只需要这几个素数
解题的过程就是求a[i]的过程
a[i] = cur(n)%tmp[i+1]/tmp[i]
其中tmp[i]为前i个素数的乘积,cur(n)表示的是n把a[i]前面对应的项都减去的结果
就没有必要证明了吧,自己对着写一下就知道了
代码如下:
#include <stdio.h>int prime[15] = {1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29};int a[15], tmp[15];int main(void) { int n, i, j, cnt, m; while(scanf("%d", &n) != EOF && n) { m = n; a[0] = n % 2; tmp[0] = 1;tmp[1] = 2; for(i=1; ; ++i) { tmp[i+1] = tmp[i] * prime[i+1]; n -= a[i-1] * tmp[i-1]; if(n <= 0) { cnt = i; break; } a[i] = n % tmp[i+1] / tmp[i]; } printf("%d = ", m); for(i=0; i<10; ++i) { if(a[i]) { printf("%d", a[i]); for(j=1; j<=i; ++j) { printf("*%d", prime[j]); } if(i != cnt-1) printf(" + "); } } printf("\n"); } return 0;}
0 0
- hdu 2964 Prime Bases (数学:算不上太水)
- HDU 2964 Prime Bases
- hdu 2964 Prime Bases
- hdu 2964 Prime Bases
- hdu 2964 Prime Bases
- HDU 2964 Prime Bases 数论
- hdu 2964 Prime Bases 数论~~
- HDU 2964 Prime Bases(数论)
- HDU 2964 Prime Bases [Ad Hoc]
- Prime Bases
- Prime Bases
- hdu2964-Prime Bases
- UVALive 4225 Prime Bases 贪心
- 杭电 “Prime Bases ”解题报告
- UVALive 4225 Prime Bases(math)
- HDU 4135 Co-prime (容斥原理, 数学)
- hdu Prime
- 数学: HDUCo-prime
- 盛世3r淼
- 只使用I/O的PrintDigit函数,编写一个过程以输出任意实数
- Reverse Integer
- POJ3187 Backward Digit Sums 枚举
- 动态链接,静态链接,导入库
- hdu 2964 Prime Bases (数学:算不上太水)
- hdu1579 Function Run Fun 记忆化搜索启蒙题
- String to array to multidimensional hash in ruby
- 【PLSQL】索引表
- Unique Binary Search Trees 求BST的组合总数 @LeetCode
- vmware下ubuntu共享win7的网络
- 《世界如此险恶,你要内心强大》读书笔记(四)
- leetCode:Minimum Depth of Binary Tree
- 2014-07-13工作周报-耿田义