题目 题意:T组,每一组输入一个数X,  求X最少能分成几个素数的和,输出. 思路: 对于一个大于2的偶数,由哥德巴赫猜想,一定能分成2个素数. 对于一个奇数来说,一定能分成2个或者3个素数之和.如果奇数 x 能被分成2个素数的和,那么一定是2和 x-2(因为奇数被分成两个数,这两个数一定是一个奇数和一个偶数,偶数只有2是素数):  如果不能分成2个素数的和, 那么只能被分成3个素数. #include<iostream> #include<cstdio> #include<…
编程测试题: 输入一个正整数将其分解成素数的乘积,输入格式连续输入m个数,然后将这m个数分别分解,如 输入: 2 10 20 输出: 2 5 2 2 5 Python code: def primes(n): primfac = [] d = 2 while d*d <= n: while (n % d) == 0: primfac.append(d) n //= d d += 1 if n > 1: primfac.append(n) return primfac s = int(raw_i…
// #include<stdio.h> #include<math.h> #include<malloc.h> int isprime(long n); void decompose_to_primes(int n); int main() { decompose_to_primes(); ; } void decompose_to_primes(int n) { int num; ]; ; int temp,i,j,exp; temp=(int)sqrt(n); n…
题目链接:http://codeforces.com/contest/872/problem/C 题意: 给你一个数n,问你最多能将n分解成多少个合数之和.(若不能分解,输出-1) 题解: 若要让合数个数最多,则n必定只由4,6,9组成. n由n/4和n%4两部分组成. 四种情况: (1)n%4 == 0: 全分成4就好了,所以ans = n/4 (2)n%4 == 1: 剩下的1要和两个4组合成一个9. 所以如果n/4 >= 2,ans = n/4 - 1 否则ans = -1 (3)n%4…
Cards Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 470    Accepted Submission(s): 72 Problem Description Given some cards each assigned a number, you're required to select EXACTLY K cards amo…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4497 GCD and LCM Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Total Submission(s): 2151    Accepted Submission(s): 955 Problem Description Given two positive integer…
题意:x可以表示为bp, 求这个p的最大值,比如 25=52, 64=26,  然后输入x 输出 p 就是一个质因子分解.算法.(表示数据上卡了2个小时.) 合数质因子分解模板. ]; ]; ; ;n!=;++i) { ) { num[cnt]=i; ){ind[cnt]++;n/=i;} cnt++; } )break; } ){num[cnt]=n; ind[cnt++]=;} 两种方法: 方法一:时间最坏的时间复杂度是(大概10^8*n)就是这种方法,数据卡了很久,如果数据再给狠一点肯定不…
GCD and LCM Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Total Submission(s): 40    Accepted Submission(s): 22 Problem Description Given two positive integers G and L, could you tell me how many solutions of (x,…
最近在建词典,使用Trie字典树,需要把字符串分解成单个字.由于传入的字符串中可能包含中文或者英文,它们的字节数并不相同.一开始天真地认为中文就是两个字节,于是很happy地直接判断当前位置的字符的ASCII码是否处于0~127之间,如果是就提取一个字符,否则提取两个.在测试分字效果的时候,这种方法出了问题.比如我传一个"abcde一二三四五"进去,abcde可以正常分解成 a b c d e,而后面的"一二三四五"则成了乱码. 于是我开启了谷歌之旅,搜索"…
把一个长字符串分解成若干个固定长度的短字符串,由于事先不知道长字符串的长度,以及短字符串的数量,只能使用List. public static void get_list_sbody(String s){ // 计数变量 int num = 0; // 每行的字符数 int r_num = 27; // 字符串 String sx = new String(""); lst_sbody = new ArrayList(); char[] cr =s.toCharArray(); for…