当前位置:首页 » 编程语言 » c语言整数分解

c语言整数分解

发布时间: 2022-07-05 20:38:17

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

声明一int型变量n接收键盘输入并限制为正数。另一int型变量i初值赋2,用i去除n,能被整除则输出i为质因数,并将n赋值为n/i;不能整除则i增1再去除n的新值……如此反复至n==1为止。输出时,在n==1之前增印一个*号表示“乘”。代码如下:

#include"stdio.h"
intmain(intargc,char*argv[]){
intn,i;
printf("Inputn(intn>0)... n=");
if(scanf("%d",&n)!=1||n<1){//输入并限制大于0
printf("Inputerror,exit... ");
return0;
}
printf(" %d=",n);
for(i=2;n>1;){//分解质因数,i从2开始
if(n%i==0){//能被i整除则输出因数i
printf("%d",i);
if((n/=i)>1)//未到最后一个因数则输出一个*号
printf("*");
}
else//不能被i整除则i增1
i++;
}
printf(" ");
return0;
}

运行样例如下:

㈡ c语言整数质分解

/*
先把数质分解,再放入数组,例如:360=2*2*2*3*3*5,则A[3]={2,3,5}
*/
#include <stdio.h>
#define MAX 32
// 求最大公约数
int maxCommonDivisor(int Num)
{
int divisor = Num;
int i;
for (i=Num/2; i>1; i--)
{
if (Num % i == 0)
{
divisor = i;
break;
}
}
return divisor;
}
int main()
{
int number = 360;
int resial = number;
int tmp;
int Buf[MAX];
int A[MAX];
int B[MAX];
int len = 0;
int i, j, k;
// 通过求最大公约数,间接得依次存放最小公约数
while (resial != (tmp = maxCommonDivisor(resial)))
{
Buf[len++] = resial / tmp;
resial = tmp;
}
Buf[len++] = tmp;
printf("%d = %d", number, Buf[0]);
for (i=1; i<len; i++)
printf(" * %d", Buf[i]);
// 将筛选后的数存放入数组A
A[0] = Buf[0];
B[0] = 1;
for (i=1,j=0,k=0; i<len; i++)
{
if (A[j] != Buf[i])
{
A[++j] = Buf[i];
B[j] = 1;
}
else
B[j]++;
}
printf(" A[%d] = { %d", j+1, A[0]);
for (i=1; i<=j; i++)
printf(", %d", A[i]);
printf(" } ");
printf("B[%d] = { %d", j+1, B[0]);
for (i=1; i<=j; i++)
printf(", %d", B[i]);
printf(" } ");
return 0;
}

㈢ c语言如何将一个正整数分解成质因数

#include<stdio.h>

voidmain()
{
inta,n;
scanf("%d",&n);
printf("n=");
for(a=2;a<=n;a++)
if(n%a==0)
{n/=a;
printf("%d",a);
printf("*");
a=1;}
}

输入编码即可。

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

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

㈤ C语言如何将一个整数拆分成若干个奇数相加

#include<stdio.h>
#include<stdlib.h>
intstack[1000];
voiddfs(intn,intk,intmin)
{
if(n==0)
{
for(inti=0;i<k;i++)
{
if(i)putchar('+');
printf("%d",stack[i]);
}
putchar(' ');
}
else
{
for(inti=1;i<=n&&i<=min;i+=2)
stack[k]=i,dfs(n-i,k+1,i<min?i:min);
}
}
intmain()
{
dfs(10,0,9999);
}

第一个参数是要分解的数,第二个参数填0,第三个比要分解的数大即可

此版本没有重复

㈥ c语言 求整数位分解

#include<stdio.h>
voidsplit(inta){
//输出百位
printf("%d",a/100);
printf("");

//输出十位
printf("%d",(a%100)/10);
printf("");

//输出个位
printf("%d",a%10);


}
intmain(){
inta;
scanf("%d",&a);
//判断输入数字的合法性。
if(a<100||a>999){
printf("errornumber!");
return0;
}
//数字分割
split(a);
return0;
}

㈦ 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);
}

㈧ c语言中怎么把一个实数分解成整数部分和小数部分

#include<stdio.h>
#include<math.h>
void
main()
{

double
F;

double
a;//存放整数部分

double
b;//存放小数部分

printf("请输入一个浮点数:");

scanf("%lf",&F);

a=floor(F);

b=F-a;

printf("将该数分解后:\n");

printf("整数部分:%lf\n",a);

printf("小数部分:%lf\n",b);
}

㈨ 怎么用C语言将一个正整数分解质因数.例如,输入90,输出90=2*3*3*5

#include "stdio.h"
void main()
{int m,i,j=0;
printf("please input the number:\n");
scanf("%d",&m);
for(i=2;i<=m;i++)
{while(m%i==0)
{j++;
if(j==1) printf("%d=%d",m,i);
else printf("*%d",i);
m=m/i;
}
}

}
没有用中文,怕你用的是TC,那就会出现乱码,这程序关键在于寻找质因数和输出格式的控制。

热点内容
滑板鞋脚本视频 发布:2025-02-02 09:48:54 浏览:433
群晖怎么玩安卓模拟器 发布:2025-02-02 09:45:23 浏览:557
三星安卓12彩蛋怎么玩 发布:2025-02-02 09:44:39 浏览:744
电脑显示连接服务器错误 发布:2025-02-02 09:24:10 浏览:537
瑞芯微开发板编译 发布:2025-02-02 09:22:54 浏览:147
linux虚拟机用gcc编译时显示错误 发布:2025-02-02 09:14:01 浏览:240
java驼峰 发布:2025-02-02 09:13:26 浏览:652
魔兽脚本怎么用 发布:2025-02-02 09:10:28 浏览:538
linuxadobe 发布:2025-02-02 09:09:43 浏览:212
sql2000数据库连接 发布:2025-02-02 09:09:43 浏览:726