#include <stdio.h>
void f(int n){
int i,k=0;
printf("%d",n);
while(n!=1){
for(i=2;i<=n;i++){
printf("%d",i);
n/=i;
break;
int main()
int i;
for(i=2;i<101;i++){
f(i);
//getch();
return 0;
基本信息
质因数就是一个数的约数,并且是质数。
比如8=2×2×2,2就是8的质因数。
12=2×2×3,2和3就是12的质因数。
把一个式子以12=2×2×3的形式表示,叫做分解质因数。
把一个合数写成几个质数相乘的形式表示,这也是分解质因数,如16=2×2×2×2,2就是16的质因数。
#include
#include
void f(int n){
int i,k=0;
printf("%d",n);
while(n!=1){
for(i=2;i<=n;i++){
if(!(n%i)){
if(k)putchar('*');
else{putchar('=');k=1;}
printf("%d",i);
n/=i;
break;
}
}
}printf("\n");
}
int main(){
int i;
for(i=2;i<101;i++){
f(i);
}
//getch();
return 0;
}
pascal 版本的。。。
Var
a, b: Array[1..100] OF Longint;
k, temp, i, j, n, t, l: longint;
Function check(i: Longint): Boolean;
Var
j: longint;
Begin
check := true;
for j:=2 To i-1 DO
if i mod j = 0 Then Begin check := false; Exit; End;
End;
begin
For i:=2 TO 100 Do
if check(i) Then Begin
inc(t);
a[t] := i;
End;
For i:=2 To 100 Do Begin
n := i;
l := 0;
while n <> 1 Do Begin
for j:=1 TO t Do
if n mod a[j] = 0 THen Begin
inc(l);
b[l] := a[j];
n := n Div a[j];
End;
End;
For j:=1 To l-1 DO
for k:=j + 1 To l DO
if b[j] > b[k] Then Begin temp := b[j]; b[j] := b[k]; b[k] := temp; End;
Write(i, ' = ', b[1]);
For j:=2 To l DO Write('*', b[j]);
Writeln;
End;
End.