当前位置: 代码迷 >> C语言 >> 一个while循环的小问题
  详细解决方案

一个while循环的小问题

热度:316   发布时间:2006-09-20 16:32:27.0
一个while循环的小问题
初学这个,碰到这样一个题 :
要求输入一个数,并将它分解质因数,如90=2*3*3*5;
试着这样编
#include <stdio,h>
void main()
{
int num,k=2; //质因数从2开始.
printf("请输入一个数字:");
scanf("%d",&num);
while(num!=k)
{
while(num%k!=0)
{ num/=k;
printf("该数分解后为:%d",num);
k++;
}
}printf("输入无效信息.");
}

如果我输入90,输出的结果却是2335 就没没乘号 怎么解决啊`

求教啊!!!!!!!!!!!!!!!!等啊````

搜索更多相关的解决方案: num  质因数  printf  数字  

----------------解决方案--------------------------------------------------------
咱怎么输入90后没结果啊 你的算法对不对啊
----------------解决方案--------------------------------------------------------
俺不蛮记得了`
上午打的`` 所以````印象有所以模糊
----------------解决方案--------------------------------------------------------
#include <stdio,h>
void main()
{
int num,k=2; //质因数从2开始.
printf("请输入一个数字:");
scanf("%d",&num);
while(num>=k) //应该是这里问题吧, 你再试试
{
while(num%k!=0)
{ num/=k;
printf("该数分解后为:%d",);
k++;
}
}printf("输入无效信息.");
}
----------------解决方案--------------------------------------------------------

#include <stdio.h>
void main()
{
int num,k=2,flag=0;
printf("请输入一个数字:");
scanf("%d",&num);
printf("该数分解后为:");
while(num!=1)
{
while(num%k==0)
{
num=num/k;
if(flag==1)
{
printf("*");
}
else
{
flag=1;
}
printf("%d",k);
}

k++;
}


getch();
}


----------------解决方案--------------------------------------------------------

#include <stdio.h>
void main()
{
int num,k=2,flag=0;
printf("请输入一个数字:");
scanf("%d",&num);
printf("该数分解后为:");
while(num!=1)
{
while(num%k==0)
{
num=num/k;
if(flag==1)
{
printf("*");
}
else
{
flag=1;// 这里看不明白啊, flag是什么啊`
}
printf("%d",k);
}

k++;
}


getch();
}


----------------解决方案--------------------------------------------------------

#include <stdio.h>
void main()
{
int num,k=2; /* 质因数从2开始. */

scanf("%d",&num);
while(num>=k)
{

if(num%k==0)
{
num/=k;
printf("%d\n",k);
k=1;
}
k++;
}
printf("end");
getch();
}
另一位高手告诉我这样做, 但是红色部分不是蛮明白
有谁可以指点我一下咯?


----------------解决方案--------------------------------------------------------
作为*的判断,没有特殊的意义.
----------------解决方案--------------------------------------------------------
#include <stdio.h>
void main()
{
int k=2,num;
printf("请输入一个数:\n");
scanf("%d",&num);
while(k!=num)
{
while(num%k!=0)
{

k++;
}


num/=k;
printf("%d",k);
printf("*");

}printf("%d=%d\n",num,k);
}
如果输入90
为什么输出的是2*3*3*5*啊````` 怎么才能变成90=2*3*3*5

----------------解决方案--------------------------------------------------------
while(num%k==0);
num=num/k;
这两句算法是怎么解释的啊
----------------解决方案--------------------------------------------------------
  相关解决方案