上题目
素分解式 (10 分)
编写函数,输出一个正整数的素数分解式。主函数的功能为输入若干正整数(大于1),输出每一个数的素分解式。素数分解式是指将整数写成若干素数(从小到大)乘积的形式。
例如: 20=2*2*5 36=2*2*3*3 53=53
输入样例:
6 10 24 100 1000 1001 1002001
6=2*3 10=2*5 24=2*2*2*3 100=2*2*5*5 1000=2*2*2*5*5*5 1001=7*11*13 1002001=7*7*11*11*13*13
唠嗑
从i=2开始循环,i每次加一,该数的因子需要判断是不是素数吗?
不用,因为如果该数被9整除,那它一定被3整除,那一遇到3就截断了,再次从2开始循环。
上代码
#include<iostream>
using namespace std;
void operate(int k);
int main (){
int k;
cin>>k;
operate(k);
while(cin>>k)
{ cout<<endl;
operate(k);}
return 0;
}
void operate(int k)
{ cout<<k<<"=";
int i=2,j=0;
while(k>1)
{
if(k%i==0)
{j++; if(j==1)cout<<i;else cout<<"*"<<i;k/=i;}
else i++;
}
}
(同学分享的)