public class Test
{
static boolean is_odd(int n)//是否为素数
{
if(n==2||n==3) return true
if(n%2==0) return false//素数肯定不是偶数
int i
for(i=3i<=n/2i+=2)//素数从奇数中挑厅穗选
if(n%i==0) return false
return true
}
public static void main(String[] args)
{
Scanner in=new Scanner(System.in)
System.out.println("输入数值")
int n=in.nextInt()
int i
System.out.print(n+"=")
for(i=2i<=ni++)
{
if(!is_odd(i)) continue//如森伏橡果i不是素此旁数,则i++,进行下一次循环
if(n%i==0)
{
while(true)//如果n%i一直 ==0则一直分解,否则跳出,i++
{
System.out.print(i)
n/=i
if(n!=1) System.out.print("*")
if(n%i!=0) break
}
}
}
System.out.println()
}
}
#include<stdio.h>#include<stdlib.h>
int a,b
int isprime(int n)
void recurPrintFactor(int n)
int main(void)
{
printf("please input two integers:\n"迹亮腊键带)
scanf("%d%d",&a,&b)
printf("The result is:\n")
for(a<=ba++)
recurPrintFactor(a)
system("PAUSE")
return 0
}
void recurPrintFactor(int n)
{
int m=2
printf("%d=",a)
if(isprime(n)==1)
printf("%d",n)
else
{
while(m<=n)
{
while(n%m==0)
{
printf("姿滑%d*",m)
n/=m
}
m++
}
}
printf("\b \n")
}
int isprime(int n)
{
int i=2,g=1
while(g)
{
for(i<ni++)
{
if (n%i==0)
{
g=0break
}
}
break
}
return g
}
这样就对了,原来的程序有逻辑上的错误,给输出带来很大麻烦。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)