黄皓安
(黄皓安)
1
BT. 寻找质因子
Problem ID: 8454
Contest ID: 5697
必做题
题面描述
输入若干个数,每个数位一个 int 类型的整数 x,需要返回这个数 x 所拥有的不同的质因数的个数。
例如数字 252 ,分解质因数为 252=2×2×3×3×7 ,那么它所拥有的不同质因数为 2,3,7 ,个数为 3 。
输入格式
第一行一个整数 q ,表示有 q 组询问。
接下去 q 行,每行包含一个正整数 x,表示一次询问。
输出格式
共 q 行,包含一个整数,表示一组询问的答案。
样例
样例输入
2
48
252
样例输出
2
3
数据范围
1≤q≤1000
2≤x≤106
1s, 256M
怎么分解质因数啊啊啊啊啊!!!
4 个赞
tyx
(༺༺■̵̶̸̸̴̴̷̩͎̬͍̙͎͕͎̩͍͇̜͍̯̖͎̙͓̪͎͓̜̟͖͈̩͈̜̮̝̠̫̠͉̘̳̳̦͈͇̖͓̩͙̩̤͇̠̠̣͔͕̲͍̪̮̥̗̦͍͇͍͖̟͔͔̲̜̗̱̤̲̤̱̝̟͇̖͔̮͙̣͚̗̣̤̱͇͖̪͚͉̜̫̤̮͎̖̥͙̜̖̞̥͔͍̳͙̉̃̀͑͗͋̾̔̓̄̆̐̾͊̐̀̆̆̋̎̂̓̈̆̑͋͛̐̍̾̎͐̈́͋̌̾̓̌̂̿͗̂̂͗̊̇͛̾̋͂͒̉̿̾̽͛̈́̍̋͗̐͒͂̊̾͒̃̎̇͐̎̇́̅̈́͂̋̑͒́̓͆̅̓͌͗͋̏͒̽̒̉̂̔̒͆̊̐̀̈́̀͒̽̚̚ͅͅ҉再见,匹诺康尼_C++CodeIkun༻༻)
2
for(int i=2;i*i<=n;i++){
while(m%i==0){
k++;
m=m/i;
}
}
合数一定能表示成两个质数的积,所以不用判断是否是质数
6 个赞