c语言将一个正整数分解质因数,望高手帮我详细解释一下程序?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言将一个正整数分解质因数,望高手帮我详细解释一下程序?相关的知识,希望对你有一定的参考价值。

#include<stdio.h>
void main()
int i,n;
printf("input the n:");
scanf("%d",&n);
printf("%d=",n);
for(i=2;i<n;)
if(n%i==0)
printf("%d*",i);
n=n/i;
else i++;
printf("%d",n);

1、首先打开vc6.0, 新建一个vc项目,添加头文件。

2、添加main主函数,如下图所示。

3、然后定义 n, i 两个变量,如下图所示。

4、接着使用scanf给n赋值,使用for循环。

5、然后用while作为内层循环,使用printf打印i。

6、最后使用if条件语句,运行程序,如下图所示,正整数分解为质因子就完成了。

参考技术A

代码:

#include <stdio.h>

void main()

int n,i;

printf("请输入一个正整数");

scanf("%d",&n);

printf("%d=",n);

for( i = 2;i <= n;i++)

while(n!=i)

if(n%i==0)

printf("%d*",i);

n=n/i;

else 

break;

printf("%d\\n",n);

方法二、

扩展资料:

scanf用法:

输出的值只是空格前面的字符是因为scanf函数的输入格式错误,输入参数的变量前需要加&。

scanf("%s",s);改为scanf("%s",&s);

scanf的用法是:scanf("格式控制字符串",输入参数一,输入参数二);

格式控制字符串包含:格式控制说明,普通字符。

1、格式控制字符串表示输入的格式,(int型用%d,float用%f,double型用%lf)

2、普通字符:在输出数据的时候,按照原样输出的字符,如:"fahr=%d,celsius=%d\\n"中的fahr=,celsius=。

3、输入的参数是变量的地址,所以要在变量前面加&。

参考技术B

#include <stdio.h>

void dissociation(int num) 

    int i,b = 0;

printf("%d = ", num);

for(i = 2;num > 1;i++) 

if(num % i == 0) 

num /= i;

if(b == 1) printf("×%d",i);

else 

printf("%d",i);

b = 1;

i--;

int main() 

int i;

for(i = 2;i <= 20;i++) 

dissociation(i);

printf("\\n");

return 0;

参考技术C #include<stdio.h>
void main()
int i,n;
printf("input the n:"); //输出input the n:
scanf("%d",&n);//输入一个数值
printf("%d=",n);//打印你刚才输入的数值
for(i=2;i<n;)
if(n%i==0)
printf("%d*",i);//当n除以i除尽的时候打印i*,n = n/i
n=n/i;
else i++;
printf("%d",n);
追问

for循环的执行过程看不懂,能不能解释下?

追答

for中的i自加的条件是n除i的余数不为零

本回答被提问者采纳
参考技术D 什么地方你没有看懂啊追问

for循环的过程看不懂,帮忙解释下

以上是关于c语言将一个正整数分解质因数,望高手帮我详细解释一下程序?的主要内容,如果未能解决你的问题,请参考以下文章

C语言分解质因数

C语言试题109之将一个正整数分解质因数。例如:输入 90,打印出 90=2乘3乘3乘5

用java编程 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

用java编程 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

第4题将一个正整数分解质因数

c语言分解质因数问题 已知正整数n是两个不同的质数的乘积,求较大的质数