code for fun

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2013年5月14日

摘要: A positive integer is called apalindromeif its representation in the decimal system is the same when read from left to right and from right to left. For a given positive integer K of not more than 1000000 digits, write the value of the smallest palindrome larger than K to output. Numbers are always 阅读全文
posted @ 2013-05-14 17:51 xueda120 阅读(149) 评论(0) 推荐(0) 编辑

摘要: 若i为素数,则设置a[i]为1;反之则设置为0.首先,将所有数组的元素设置为1,表示没有已知的非素数。然后将已知为非素数(即为已知素数的倍数)的索引对应的数组元素设置为0。如果将所有较小的素数的倍数都设置为0之后,a[i]仍然保持为1,则可判断它是所找的素数。 1 #include<stdio.h> 2 #define N 10000 3 int main() 4 { int i, j, a[N]; 5 for (i = 2; i < N; i++) a[i] = 1; 6 for (i = 2; i < N; i++) 7 if (a[i]) 8 ... 阅读全文
posted @ 2013-05-14 13:16 xueda120 阅读(163) 评论(0) 推荐(0) 编辑

摘要: 描述一个正整数,如果从左向右读(称之为正序数)和从右向左读(称之为倒序数)是一样的,这样的数就叫回文数。任取一个正整数,如果不是回文数,将该数与他的倒序数相加,若其和不是回文数,则重复上述步骤,一直到获得回文数为止。例如:68变成154(68+86),再变成605(154+451),最后变成1111(605+506),而1111是回文数。于是有数学家提出一个猜想:不论开始是什么正整数,在经过有限次正序数和倒序数相加的步骤后,都会得到一个回文数。至今为止还不知道这个猜想是对还是错。现在请你编程序验证之。 输入每行一个正整数。特别说明:输入的数据保证中间结果小于2^31。输出对应每个输入,输出两行 阅读全文
posted @ 2013-05-14 11:27 xueda120 阅读(507) 评论(0) 推荐(0) 编辑

摘要: 描述哥德巴赫猜想大家都知道一点吧.我们现在不是想证明这个结论,而是想在程序语言内部能够表示的数集中,任意取出一个偶数,来寻找两个素数,使得其和等于该偶数.做好了这件实事,就能说明这个猜想是成立的.由于可以有不同的素数对来表示同一个偶数,所以专门要求所寻找的素数对是两个值最相近的,而且素数对中的第一个数不大于第二个数. 输入输入中是一些偶整数M(5<M<=10000).输出对于每个偶数,输出两个彼此最接近的素数,其和等于该偶数.样例输入203040样例输出7 1313 1717 23 1 #include<stdio.h> 2 #include<math.h> 阅读全文
posted @ 2013-05-14 09:44 xueda120 阅读(590) 评论(0) 推荐(0) 编辑

摘要: 找出所有满足1/x+1/y=1/z的三元正整数解(x,y,z) 方程等价变形为:z=xy/(x+y),记d=gcd(x,y) ---- 最大公约数于是,x=dm, y=dn, 其中gcd(m,n)=1.紧接着,gcd(mn,m+n)=1,于是z=dmn/(m+n), 表明(m+n)|d, 例如:d=k(m+n),k是一个正整数.于是我们就可以得到如下解:x=km(m+n), y=kn(m+n), z=kmn,其中三个参数:k,m,n都是正整数.注意:假如a,b,c没有公因子,并且满足1/a+1/b=1/c, 于是a+b是一个完全平方数. 事实上,通过前面的解,... 阅读全文
posted @ 2013-05-14 00:11 xueda120 阅读(136) 评论(0) 推荐(0) 编辑