#include
#include
int Cool(int m)
{
int array[20];
int i,j;
int k=1;
int l=0;
for(i=0;m!=1;i++,k++)
{
for(j=2;j<=m;j++)
{
if(m%j==0)
{
array[k]=j;
m=m/j;
break;
}
}
}
//************经过我调试的结果 ,下面的程序 测试如下,然而地址 对应不上
l=k;
array[0]=l-1;
//printf("他一共有%d个元素:",array[0]-1);
for(i=0;i<k;i++)
{
printf("\n********************\n%d ",&array[i]);
}
return array;//我要将数组传回去
}
//**************看看是否接受到了
int main()
{
int m,n,k=0;
int Array[20];
int p,*p1,o,o1;
int array[20];
int i,j,k1=0;
int sum = 1;
int MinSum=0;
printf("please input the two values:\n");
scanf("%d%d",&m,&n);
//*****************分别用两个数组接收一下,来测试下吧
//**************
o=m;
o1=n;
//************第一次运行的时候发现是循环条件有了些问题
printf("\n***************\n");
//p=array;
p=Cool(m);
array[0]=*p;
printf("************ %d *****",p);
printf("there are have %d 个",&array[0]);
p++;
//*************************************//下面的这个部分有问题了
for(i=0;i<array[0];i++,p++)
{
printf("%d ",p);//首先可以证明的一点是指针一定是连续的. ..我输出了下地址证明的确是连续的
}
//*****************
//****************下面这个要求的是最大公约数
/*for(i=0;i<k;i++)
{
for(j=i;j<k1;j++)
{
if(array[i]==array1[j])
{
sum=sum*array[i];break;
}
}
}
//**************这个是最大公约数的结果
printf("\n*********\n%d:",sum);
MinSum=(o*o1)/sum;
printf("\n*********\n%d:",MinSum);
//接下来 我要求最小公倍数了 */
return 0;
}//我们只讨论指针的问题