首页 / C# / C#实现将一个正整数分解质因数
C#实现将一个正整数分解质因数
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#实现将一个正整数分解质因数,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1622字,纯文字阅读大概需要3分钟。
内容图文
![C#实现将一个正整数分解质因数](/upload/InfoBanner/zyjiaocheng/603/6393f479b9eb46b58f526ecf0f55958a.jpg)
C#实现将一个正整数分解质因数
正整数分解质因数即例如:90=2?3?3?5
编写代码思路:
- 判断输入的数据n是否为正 整数;
- 判断是否为1,1不是素数(质数);
- 判断输入数据本身是否为质数;
- 每次都从质数2开始查找n的因数,因此有两步:
- 【1】 从1开始,以1为步长查找出质数i;
- 【2】判断n%i(n对i求)是否为0,成立则输出i,并使n(新)=n(原)/i,判断n(新)是否为1,不成立则说明还有除1之外的因数,则输出乘号*;并令i=1,又从头开始查找n(新)的因数。
代码段如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace norm_program
{
class Program
{
static void Main(string[] args)
{
int i=2,k,j,n1;//n1用于判断输入的n是否为正整数;
Console.Write("请输入一个正整数:");
double n=double.Parse(Console.ReadLine());
n1 =(int)n;
if (n <= 0 || n - n1 != 0)
Console.Write("数据不符合要求,请重新输入一个正整数!");
else if (n == 1)
Console.WriteLine("1不是质数,没有质因数!");
else
{
//————————————判断输入的数据本身是否为质数;——————————————————
k = (int)Math.Sqrt(n);
for (j = 2; j <= k; j++)
if (n % j == 0)
break;
if (j > k)
Console.Write("输入的数字为质数,除其本身再没有其他质因数!");
//————————————————————————————————————————————————————————————
else
{
Console.Write("{0}的质因数表达为:{1}=",n,n);
for (i = 1; n != 1;i++ )
{
k = (int)Math.Sqrt(i);
for (j = 2; j <= k; j++)
if (i % j == 0)
break;
if (j > k &&(int)n %i==0&&i!=1)//i为素数,且i为n的因数;
{
Console.Write("{0}", i);
n = (int)n / i;
if(n!=1)
Console.Write("*");
i = 1;//使得i又从新开始遍历寻找n的质因数;
}
}
}
}
Console.ReadLine();
}
}
}
输出结果演示:
内容总结
以上是互联网集市为您收集整理的C#实现将一个正整数分解质因数全部内容,希望文章能够帮你解决C#实现将一个正整数分解质因数所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。