- 问题描述
艾迪的兴趣非常广泛,最近他对素数感兴趣。艾迪发现所拥有的所有号码都可以分为素数的乘,要求聪明的你来帮助他,他要求你编写一个能够把数字分解成素数因子的乘积
,
- 输入
输入将包含每行1 <x <= 65535的数字,表示该集合的元素数量。
- 产量
您必须在输出中为每个条目打印一行,并回答上一个问题。
- 输入示例
11
9412
- 示例输出
11
2 * 2 * 13 * 181
这是一道整数分解的题目,在这里我用的就是循环(从3到根号N)求得所有素数因子。
代码:
#include <stdio.h>
void factorization(int n)
{
int num = 0;
while(n%2 == 0){
NUM ++;
N = N / 2;
如果(num == 1)
的printf( “%d”,2);
其他
的printf( “*%d”,2);
} //这里是把所有的素数因子2先打印出来
// printf的( “%d \ n” 个,NUM);
for(int i = 3; i * i <= n; i = i + 2){
while(n%i == 0){
NUM ++;
N = N / I;
如果(num!= 1)
的printf( “*%d”,i)的;
其他
的printf( “%d”,i)的;
} //从3到根号n的素数因子
}
if(n!= 1){
如果(num == 0)
的printf( “%d”,N);
其他
的printf( “*%d”,N);
} //输出剩下的n
}
int main(){
void factorization(int n); //声明函数
int n;
while(scanf(“%d”,&n)!= EOF){
分解(N);
的printf( “\ n”); //注意要换行
}
返回0;
}