/* 函数fun的功能是:读入一个整数k(2≤k≤10000),打印它的所有质因子(即所有为素数的因子)。
例如,若输入整数:3410,则应输出:2、5、11、31。
void fun(int k)
*/
#include <stdio.h>
#include <math.h>
void fun(int k);
void main(void)
{
int k;
printf("Input k:");
scanf("%d",&k);
fun(k);
}
void fun(int k)
{
int i,j,m,n;
m=k/2; /* 只用循环到k/2即可 */
for(i=2;i<=m;i++)
{
if(k%i==0) /* 前提是i能被k整除 */
{
n=(int)(sqrt(i));
for(j=2;j<=n;j++) /* 判断i是不是素数 */
{
if(i%j==0) break;
if(j>n) printf("%5d",i); /* 若是素数则输出i */
}
}
}
printf("\n");
}
不知道错在哪````语法是对的````
帮我改改谢谢```学习学习