当前位置:首页 » 编程软件 » 编程分解质因数

编程分解质因数

发布时间: 2023-05-11 22:58:23

1. c#编写程序:将一个正整数分解质因数。如90=2*3*3*5

输入90,打印输出90=2*3*3*5
class Program
{
static void Main(string[] args)
{
int n, i;
Console.WriteLine("\nplease input a number:\n");
n=Convert.ToInt32( Console.ReadLine());
Console.WriteLine("质数分解为:");
for (i = 2; i <= n; i++) //循环被除数
{
while (n != i)
{
if (n % i == 0) //整除即可//质数
{
Console.WriteLine(i);
n = n / i; //新的除数
}
else
break;
}
}
Console.WriteLine(n);
Console.ReadLine();
}
}
Bruce
using System;
class Program
{
static void Main(string[] args)
{
Console.Write("请输入一个整数:");
int num = Convert.ToInt32(Console.ReadLine());
string str = num.ToString()+"=";
for (int i = 2; num!=1; i++)
{
while (num % i == 0)
{
str += i.ToString() + "*";
num = num / i;
}
}
str=str.Substring(0, str.Length - 1);
Console.WriteLine("结果为:{0}",str);
Console.ReadLine();
}
}

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int intnum = 90;//输入的数字
bool bol = true;//while循环的条件
int[] intaa = new int[intnum];//存储分解的质因数
int arrayIndex = 0;//intaa的索引
bool bol1 = true;//判断是否循环完毕
while (bol)//while控制整数分解质因数的整个流程
{
for (int i = 2; i <= intnum; i++)//分解整数循环(是一次次的分解)
{
if (i == intnum)
bol1 = false;//判断是否是最后一次分解
if (intnum / i != 0)//是否除的尽
{
continue;
}
else//除的尽的话
{
intaa[arrayIndex] = i;//把质因数存储
arrayIndex++;//存储质因数的数组下标加1
intnum = i;//跟换当前intnum数,用来继续分解
break;//跳出for循环
}
}
if (bol1)//如果分解完毕跳出循环
break;
}
//剩下打印你自己写咯
}
}
}

2. C语言分解质因数

#include <stdio.h>

int main(){

int n; // 用户输入的整数

int i; // 循环标志

printf("输入一个整数:");

scanf("%d",&n);

printf("%d=",n);

// n>=2才执行下面的循环

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

while(n!=i){

if(n%i==0){

printf("镇闹乎%d*",i);

n=n/i;

}else

break;

}

}

printf("%d ",n);

return 0;

}

3. 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;
}

运行样例如下:

4. 分解质因数的编程分解

实现一,此代码因为用了long long int,为C99标准,故不可再VC6.0上运行。 #include<stdio.h>#include<math.h>intmain(){inti,b;longlongintin;/*采用64位整型,以便输入更大的数*/freopen(F://1.txt,r,stdin);freopen(F://2.txt,w,stdout);while(scanf(%lld,&in)!=EOF){/*在F://1.txt中输入x个数N(N>=2)以换行符或空格符隔开,当没有输入时循环会自动结束*/b=0;/*用于标记是否是第一个质因数,第一个质因数在输出时前面不需要加空格*/for(i=2;in!=1;i++){if(in%i==0){薯运in/=i;b?printf(%d,i):printf(%d,i),b=1;i--;/*i--和i++使得i的值不变,即能把N含有的所有的当前质因数除尽,例如:24会一直把2除尽再去除3*/}printf( );}}return0;}实现二
可直接在VC6.0运行。 #include<stdio.h>intm,b,c=0,j=0;inta[10];//存放质因数intfjzys(intk){inti=2;while(k>=i)//判断k是否合格{if(k%i==0)//判断k是否整除当前因数{a[j]=i;//存入因数k/=i;//余数i=2;//令i重新等于2j++;//计数值}else{i++;//不能整除则当前因数为非质因数}}return0;}/*用for实现上面的函数intfjzys(intk){inti=2;for(;i<=k;i++)//当因数i<=k时,实现该循环,每次循环因数i自加1for(;k%i==0;j++)//当k整除当前因数,实现该循环,每次循环下标j自加1{k/=i;//使k=k/ia[j]=i;//存入因数}return0;}解决上面的函数,无法输出,多个相同的质因数,如90=2*3*3*5,只能输出一个3.*/voidmain(){printf(请输入一个整数 k=);scanf(%d,&m);fjzys(m);for(b=0;b<(j-1);b++)//*比质因数少一个{塌袜printf(%d,a[b]);printf(*);}printf(%d ,a[j-1]);//输出最后一个质因数} @echo offcolor 1e:startclstitle 分解质因数程序set /p num=请输入待分解的数set num0=%num%if %num% EQU 1 cls&echo 1既不是素数也不是非素数,不能分解&pause >nul&goto startif %num% EQU 2 cls&echo 2是素数,不能分解&pause >nul&goto startif %num% EQU 3 cls&echo 3是素数,不能数衫梁分解&pause >nul&goto startset numx=:loop_1if %num% EQU 1 goto resultset count=3set /a mod=num%%2if %mod% EQU 0 (set numx=%numx%×2set /a num=num/2goto loop_1):loop_2set /a mod=num%%countif %mod% EQU 0 (set numx=%numx%×%count%set /a num=num/count)if %num% EQU 1 goto resultif %count% EQU %num% set numx=%numx%×%count%&goto resultclsset /a stop=%count%*%count%if %stop% GTR %num% set numx=%numx%×%num%&goto resultset /a count+=2echo 正在计算......echo %num0%=%numx:~2%set /a wc=stop*100/numecho 正在计算%num%的因数echo 已完成计算%wc%%%if %mod% EQU 0 goto loop_1goto loop_2:resultclsset numx=%numx:~2%if %num0% EQU %numx% echo %num0%是素数,不能分解!&pause >nul&goto startecho %num0%=%numx%pause >nulgoto start

热点内容
树莓派自带ftp开启 发布:2025-07-07 21:11:41 浏览:49
智慧树用脚本会怎么样 发布:2025-07-07 21:05:48 浏览:514
随机启动脚本 发布:2025-07-05 16:10:30 浏览:535
微博数据库设计 发布:2025-07-05 15:30:55 浏览:32
linux485 发布:2025-07-05 14:38:28 浏览:310
php用的软件 发布:2025-07-05 14:06:22 浏览:760
没有权限访问计算机 发布:2025-07-05 13:29:11 浏览:437
javaweb开发教程视频教程 发布:2025-07-05 13:24:41 浏览:736
康师傅控流脚本破解 发布:2025-07-05 13:17:27 浏览:249
java的开发流程 发布:2025-07-05 12:45:11 浏览:696