
正文
c语言递归函数求质数因子 c语言用递归函数求10!
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
c语言编程:求一个数的质因子
#includestdio.h
int main()
{
int i, j, a[999999], x, y;
scanf("%d", x); //读取
y = x;
for(i = 2, j = 0; i = x; i++) //遍历质因数
{
if(x % i == 0) //如果读取的数能够被质因数整除
{
a[j] = i; //将符合条件的质因数存到数组中
j++; //数组下标递增
x /= i; //重新赋值
i = 2; //重新遍历
}
}
printf("%d=%d", y, a[0]); //输出原数、等号、第一个质因数
for(i = 1; i j; i++)
printf("×%d", a[i]); //如果存在第二个质因数,则继续输出
return 0;
}
相关问答
Q1: 用C语言的函数递归方法来求
#include stdio.h
#include math.h
void fun2(int m)
{
int k=0,a[10];
for(int i=2;im;i++)
if(m%i==0)
a[k++]=i;
for(int i=0;ik;i++)
{
printf("%d",a[i]);
if(i!=k-1)
printf(",");
}
}
void fun1(int m)
{
if(m2)
printf("%d is a prime number",m);
for(int i=2;i*i=m;i++)
if(m%i==0)
fun2(m);
else
printf("%d is a prime number",m);
}
int main( )
{ int n;
scanf("%d",n);
fun1(n);
return 0;
}
Q2: 用C语言怎样做出分解质因数啊,请高手们帮个忙吧。
#
include
"stdio.h"
int
isPrime(int
a)
{
/*判断a是否是
质数
,是质数返回1,不是质数返回0*/
int
i;
for(i=2;i=a-1;i++)
if(a
%
i
==
0)
return
0;
/*不是质数*/
return
1;
/*是质数*/
}
void
PrimeFactor(int
n)
{
/*对参数n分解
质因数
*/
int
i;
if(isPrime(n))
printf("%d
",n);
else
{
for(i=2;i=n-1;i++)
if(n
%
i
==
0)
{
printf("%d
",i);
/*第一个因数一定是质因数*/
if(isPrime(n/i))
{
/*判断第二个因数是否是质数*/
printf("%d
",n/i);
break;
/*找到全部
质因子
*/
}
else
PrimeFactor(n/i);
/*递归地调用PrimeFactor
分解n/i
*/
break;
}
}
}
main()
{
int
n;
printf("Please
input
a
integer
for
getting
Prime
factor\n")
;
scanf("%d",n);
PrimeFactor(n);
/*对n
分解质因数
*/
getche();
}
Q3: C语言编写:求2-100中,每个数的质因子
#include stdio.h
#include math.h
void fun(int num) /* 该函数输出num的因数分解表达式 */
{
int flag = 0 ; /* flag 表示找到了num的一个质因数 */
int i;
int have_factor=0; /* have_factor 表示num有没有质因数 */
int root;
do
{
flag=0;
root = sqrt(num); /* root 表示查找num的质因数的最大可能值 */
for(i=2;i=root;i++)
{
if(num%i==0) /* 找到了num的一个质因数 */
{
if(have_factor==0) { printf("\n%d = %d * ",num,i); }
else { printf("%d * ",i); }
num/=i;
flag=1;
have_factor=1;
break;
}
}
}while(flag==1); /* 如果num还能继续分解,则继续循环,否则退出循环 */
if(have_factor==1) { printf("%d",num); }
else { printf("\n\n%d is a prime number!\n",num);}
return;
}
main()
{
int k;
for(k=2;k=100;k++)
{
fun(k);
}
getch();
}
Q4: c语言 以尾递归的方式计算整数2049的质因子
var a:array[0..100]of longint;
n,i:longint;
procedure work(var n:longint;i:longint);
begin
while i*i=n do
if n mod i=0 then
begin
n:=n div i;
if a[a[0]]i then begin inc(a[0]); a[a[0]]:=i; end;
work(n,i);
end
else inc(i);
if (n1)and(a[a[0]]n) then begin inc(a[0]); a[a[0]]:=n end;
end;
begin
readln(n);
work(n,2);
for i:=1 to a[0]-1 do write(a[i],' ');
writeln(a[a[0]]);
end.
c语言递归函数求质数因子的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言用递归函数求10!、c语言递归函数求质数因子的信息别忘了在本站进行查找喔。






