摘要: 根据算数基本定理,一个合数可以分解成多个素数的乘积。输入:一个正整数输出:它的所有质因数思路 2是最小的素数,所以从2开始,不断地用2去除正整数n,如果可以被除尽,那么输出质因数2,如果除不尽,2加1到3,再用3去除。直到最后n变成1了,则结束循环。 我之前有个顾虑就是在循环时如何保证当前的除数是素数?后来发现因为2是素数,所以如果n能被其他偶数整除,那么首先就会被除数2整除,并且往后我们会判断能否继续被2整除,只有当2除不尽时,除数才会开始递增。质因数分解中有一个规律:首先找出的质因数比后找出的质因数小。C++代码实现:#include int main(){ int T, n; sca.. 阅读全文
posted @ 2013-09-02 23:58 StrikeW 阅读(445) 评论(0) 推荐(0) 编辑
摘要: 中学学过的方法是这样的:假设我要把十进制2991转换成十二进制,那么就用12来除2991,余数是十二进制数的最低位,继续用12除之前所得到的的商,余数是十二进制数的第二位,以此类推。直到最后所得商数为0,算法终止。需要注意的是十六进制中,10~15是用英文字母ABCDEF来表示的,这个需要特别处理。C++代码:#include #include #include void mySwap(char& a, char& b) { char temp = a; a = b; b = temp;}// 翻转字符串void reverseStr(char src[]) { int i = 阅读全文
posted @ 2013-09-02 16:14 StrikeW 阅读(1783) 评论(0) 推荐(0) 编辑