测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A37143. 分解质因数提示信息:质数:是一个大于1的自然数,且除了1和它本身外,不能被其他自然数整除的数。最小的质数是2,1不是质数。合数:一个正整数,如果除1和它本身以外,还能被其他正整数整除,叫合数。如6是合数,除了1和6以外,还能被2和3整除。 分解质因数:每个合数都可以写成几个质数相乘的形式,其中每个质数都是这个合数的因数,把一个合数用质因数相乘的形式表示出来,叫做分解质因数(分解质因数只针对合数)…

填空题 困难

题目描述

分解质因数

提示信息:

质数:是一个大于1的自然数,且除了1和它本身外,不能被其他自然数整除的数。最小的质数是2,1不是质数。

合数:一个正整数,如果除1和它本身以外,还能被其他正整数整除,叫合数。如6是合数,除了1和6以外,还能被2和3整除。 

分解质因数:每个合数都可以写成几个质数相乘的形式,其中每个质数都是这个合数的因数,把一个合数用质因数相乘的形式表示出来,叫做分解质因数(分解质因数只针对合数)。如合数12=2×2×3 。

分解质因数的方法是先用这个合数的最小质因数去除这个合数,结果若是一个质数就不再除下去;若是一个合数就继续按原来的方法从最小质因数除起,直至最后除得的结果是一个质数 。

例如:

合数18分解质因数,首先用最小质因数2去除,除后结果为合数9,继续用最小质因数3去除,除后结果为质数3,就不再除下去。所以18的质因数为2、3、3,故质因数的个数为3;

题目描述:

给定一个合数N,将N分解质因数后,输出其质因数个数。

输入描述:

输入一个合数N         

输出描述:

将N分解质因数后,输出质因数个数

样例输入:

18

样例输出:

3

参考答案

#include <iostream> #include <stdio.h> using namespace std; int main() { int n; cin >> n; cout << n << "="; for (int i = 2; i <= n; i++) { // cout<<n<<endl; while (n % i == 0) { cout << i; n = n / i; // cout<<n<<endl; if (n != 1) cout << "*"; } } return 0; }
上一题 下一题