C语言之基本算法34—分解质因数(方法一)
//矩阵基础
/*
==================================================================
题目:输入一个正整数。将其分解为质因式,如:60=2*2*3*5;若本身是质数,则输出
如:307是一个质数! ==================================================================
*/
#include<stdio.h>
void main()
{
int n,m,c,i,k,y[40];
printf("输入一个正整数:");
scanf("%d",&n);
while(n>0)
{
m=n;
c=0;
k=m/2;
for(i=2;i<=k;i++)
{
while(m%i==0)
{
y[c++]=i;
m/=i;
}
}
if(m>1)
y[c++]=m;
if(c==1)
printf("%d 是一个质数\n",n);
else
{
printf("%d=%d",n,y[0]);
for(i=1;i<c;i++)
printf("*%d",y[i]);
printf(".");
}
printf("\n\n继续输入一个正整数:");
scanf("%d",&n);
}
} /*
====================================================================
评:
这个编法可能比較抽象!比較难理解的地方是m>1,c==1,m%i==0;m>1,则m至少为2,说明
至少有一个质因数(由于2,3,都是质数),所以储存质因子的数组y[]至少含一个元素。即c>=1;
若c==1,则y[]恰好有一个元素,必然是这个数它本身! 所以这个数就是素数!m%i==0,说明m
能够被i整除,即i是m的因子,由于是从2開始的。所以必然为质数(读者若不明确,能够在温
习一下质数的性质。);m/i,是将m分解为一个数shu乘以质因数,然后通过for和while循环继续
寻找shu的质因数! 直到找不到则循环结束,然后按格式输出就好!
=====================================================================
*/
C语言之基本算法34—分解质因数(方法一)的更多相关文章
- Java实现 蓝桥杯 算法提高 分解质因数(暴力)
试题 算法提高 分解质因数 问题描述 给定一个正整数n,尝试对其分解质因数 输入格式 仅一行,一个正整数,表示待分解的质因数 输出格式 仅一行,从小到大依次输出其质因数,相邻的数用空格隔开 样例输入 ...
- 数论 - Miller_Rabin素数测试 + pollard_rho算法分解质因数 ---- poj 1811 : Prime Test
Prime Test Time Limit: 6000MS Memory Limit: 65536K Total Submissions: 29046 Accepted: 7342 Case ...
- C语言程序设计100例之(5):分解质因数
例5 分解质因数 题目描述 将一个正整数分解质因数.例如:输入90,输出 90=2*3*3*5. 输入 输入数据包含多行,每行是一个正整数n (1<n <100000) . 输出 对 ...
- 程序设计入门——C语言 第6周编程练习 1 分解质因数(5分)
1 分解质因数(5分) 题目内容: 每个非素数(合数)都可以写成几个素数(也可称为质数)相乘的形式,这几个素数就都叫做这个合数的质因数.比如,6可以被分解为2x3,而24可以被分解为2x2x2x3. ...
- 网易云课堂_程序设计入门-C语言_第五周:函数_1分解质因数
1 分解质因数(5分) 题目内容: 每个非素数(合数)都可以写成几个素数(也可称为质数)相乘的形式,这几个素数就都叫做这个合数的质因数.比如,6可以被分解为2x3,而24可以被分解为2x2x2x3. ...
- c语言程序设计第6周编程作业一(分解质因数)
分解质因数 题目内容: 每个非素数(合数)都可以写成几个素数(也可称为质数)相乘的形式,这几个素数就都叫做这个合数的质因数.比如,6可以被分解为2x3,而24可以被分解为2x2x2x3. 现在,你的程 ...
- 中国MOOC_零基础学Java语言_第7周 函数_1分解质因数
第7周编程题 查看帮助 返回 第7周编程题 依照学术诚信条款,我保证此作业是本人独立完成的. 温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截 ...
- java求最大公约数(分解质因数)
下面是四种用java语言编程实现的求最大公约数的方法: package gcd; import java.util.ArrayList; import java.util.List; public c ...
- 10个经典的C语言面试基础算法及代码
10个经典的C语言面试基础算法及代码作者:码农网 – 小峰 原文地址:http://www.codeceo.com/article/10-c-interview-algorithm.html 算法是一 ...
随机推荐
- Day17re模块和hashlib模块
re模块 正则表达式 用一些特殊符号拼凑成的规则,去字符串中匹配到符合规则的东西 为什么有正则表达式 从字符串中取出想要的数据 怎么用正则表达式 re.findall()结果存成列表 \w 匹配一个字 ...
- python 学习总结5
字符串类型及操作 一.字符串类型的表示 (1)字符串:由0个或多个字符组成的有序字符序列 例如:“请输入带有符号的温度值” 或者‘c’都是字符串 (2)字符串是字符的有序序列,可以对其中的字符进行索 ...
- codeforces Lightsabers (hard)
题目大意: 给定每种球的数量,求从中选取k个球有多少种不同的取法,同种球视为相同的. 题解: 多项式(1+x+x^2+...+x^a[1])*(1+x+x^2+...+x^a[2])*(1+x+x^2 ...
- Wp8 读取手机信息
/// <summary> /// 获取系统信息 /// </summary> private void GetSystemInfo() { lblMsg.Text = str ...
- Fatal error: Call to a member function rowCount() on a non-object in /opt/lampp/htdocs/xampp/assets/update.php on line 6
$sql = "SELECT * from idea ORDER BY datetime DESC LIMIT 50;"; $result = $pdo->query($sq ...
- POJ-2078 Matrix,暴力枚举!
Matrix 题意:一个n*n的数字矩阵,每次操作可以对任意一行或者一列进行循 ...
- Datatable 生成json格式
public string GetJsonFromDataTable(DataTable dt, int total, bool ShowFooter, string fields, string i ...
- [luoguP3317] [SDOI2014]重建(矩阵树定理)
传送门 为了搞这个题又是学行列式,又是学基尔霍夫矩阵. 矩阵树定理 本题题解 无耻地直接发链接,反正我也是抄的题解.. #include <cstdio> #include <cma ...
- [BZOJ3339] Rmq Problem(线段树)
传送门 这个题的方法好像很多啊 1.莫队暴力 2.线段树 + 离线处理 先预处理出sg[i]表示前i个数的sg值,next[i]表示i的下一位置在哪里,如果后面再没有i,那么next[i] = n + ...
- py 爬取页面http://m.sohu.com 并存储
usage() opts,args = getopt.getopt(sys.argv[1:], usage( ...