|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
这个程序的功能是输入一个数字,并求其因式分解,例如输入90,输出90=2*3*3*5,但是我有一个小小的疑惑,输入90,最后会变成n=1,i=5,然后n不等于i一直成立,为什么不会死循环
#include <stdio.h>
int main(void)
{
int i,n;
printf ("请输入一个数\n");
scanf ("%d",&n);
for (i=2;i<=n;i++)
{
if (n%i==0)
{
printf("%d=%d",n,i);
break;
}
}
n=n/i;
while (n!=i)
{
for(i=2;i<=n;i++)
{
if (n%i==0)
{
printf ("*%d",i);
n=n/i;
break;
}
}
}
if (n!=1)
printf("*%d",n);
}
本帖最后由 jackz007 于 2020-11-25 22:12 编辑
- #include <stdio.h>
- int main(void)
- {
- int f , i , n ;
- printf ("请输入一个数\n") ;
- scanf ("%d" , & n) ;
- for(f = 0 , i = 2 ; i * i < n + 1 ; i ++)
- {
- if (n % i == 0)
- {
- printf("%d = %d" , n , i) ;
- f = 1 ;
- break ;
- }
- }
- if(! f) printf("%d is a prime.\n" , n) ;
- while(f)
- {
- for(f = 0 , n = n / i , i = 2 ; i * i < n + 1 ; i ++) {
- if (n % i == 0)
- {
- printf (" * %d" , i) ;
- f = 1 ;
- break ;
- }
- }
- if(! f) printf(" * %d" , n) ;
- }
- }
复制代码
|
|