因数分解(正整数)

因数分解:把一个整数分解成两个或更多的除1外的整数相乘的过程,而这些整数称为这个数的因数。

例:    若n = p x q,则p 、q 称为 n 的因数。

一个数也可能有多个因数。

例:   20 =  4 x 5 = 2 x 10.

程序:

 1 #include <stdio.h>
 2 #include <math.h>
 3
 4 int main(){
 5     int n = -1;
 6     int i;
 7     int p,q;
 8
 9     while(n < 1){
10         printf("\n请输入n的值:(1 < n)\n\tn = ");
11         scanf("%d", &n);
12     }
13
14     for(i = 1; i <= sqrt(n); i++){
15            if(n % i == 0){
16                p = i;
17                q = n / p;
18             printf("\t    %d = %d * %d\n",n,p,q);
19            }
20        }
21     return 0;
22 }

结果1:

     

结果2:

     

时间: 2024-10-11 21:51:04

因数分解(正整数)的相关文章

Vijos1889 天真的因数分解

描述 小岛: 什么叫做因数分解呢?doc : 就是将给定的正整数n, 分解为若干个素数连乘的形式.小岛: 那比如说 n=12 呢?doc : 那么就是 12 = 2 X 2 X 3 呀.小岛: 呜呜, 好难, 居然素数会重复出现, 如果分解后每一个素数都只出现一次, 我就会. wish: 这样来说, 小岛可以正确分解的数字不多呀.doc : 是呀是呀.wish: 现在问题来了, 对于给定的k, 第 k 个小岛无法正确分解的数字是多少? 格式 输入格式 输入只有一行, 只有一个整数 k. 输出格式

因数分解问题

描述 请你写一个程序,读如一个正整数,请找出所有质因数的连乘,例如: 2016=2^5*3^2*7^1 3888=2^4*3^5 9800=2^3*5^2*7^2 71329629=3^1*7^1*19^2*97^2 5421051804 =2^2*3^1*7^1*19^3*97^2 其中,正整数的范围是在1~5147499,若其中有两个以上的质数,则按由小而大的顺序依次印出! 输入 第一行为用例个数N(N<=100),接下N行每行只有一个正整数x(2<=x<=5147499). 输出

给定正整数n,计算出n个元素的集合{1,2,....,n}可以划分为多少个不同的非空集合

附源代码: #include<iostream> using namespace std; int F(int n,int m) { if(n<=2) return 1; if(m==1||n==m) return 1; else return F(n-1,m-1)+m*F(n-1,m); } void main() { int n; char end; int result = 0; cout<<"请输入正整数n="; cin>>n; for

Unity3D NGUI UIInput制作输入框屏蔽特殊字符(只允许输入正整数)

1.首先看看使用NGUI插件创建一个简单输入文本框效果:. 2.这个简单的输入文本框需要一个label标签作为显示,一个背景图片以及输入UIInput脚本.我们看看unity的输入文本框的节点图 我们需要如下操作创建上图的节点, 接着创建量空的Gameobject节点如图所示并且重新命名为Input和Label名字. 3.绑定对应的脚本,在Input节点上我们添加部件选择UIInput.cs脚本和UISprite.cs脚本以及添加一个矩形碰撞器如图所示: 接下来我们进行UISprite脚本的设置

算法基础:正整数指定规则排序问题(Golang实现)

给定字符串内有非常多正整数,要求对这些正整数进行排序.然后返回排序后指定位置的正整数 排序要求:依照每一个正整数的后三位数字组成的整数进行从小到大排序 1)假设不足三位,则依照实际位数组成的整数进行比較 2)假设相等,则依照输入字符串中的原始顺序排序 说明(下面内容考生无须检查,调用者保证): 1) 字符串内正整数之间以单个空格分隔,字符串首尾没有空格 2) 正整数格式为十进制,大小:1~1000000,正整数的数字非零開始 演示样例: 如字符串内容 1223 22 3232 2016 依照规定

CCCC 正整数A+B

题意: 本题的目标很简单,就是求两个正整数A和B的和,其中A和B都在区间[1,1000].稍微有点麻烦的是,输入并不保证是两个正整数. 输入格式: 输入在一行给出A和B,其间以空格分开.问题是A和B不一定是满足要求的正整数,有时候可能是超出范围的数字.负数.带小数点的实数.甚至是一堆乱码. 注意:我们把输入中出现的第1个空格认为是A和B的分隔.题目保证至少存在一个空格,并且B不是一个空字符串. 输出格式: 如果输入的确是两个正整数,则按格式“A + B = 和”输出.如果某个输入不合要求,则在相

4 因数分解

题目:将一个正整数分解质因数. * 例如:输入90,打印出90=2*3*3*5. * 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:   * (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可. * (2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步. * (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步. 1 public class _004YinShiFenJie {

L1-025. 正整数A+B

本题的目标很简单,就是求两个正整数A和B的和,其中A和B都在区间[1,1000].稍微有点麻烦的是,输入并不保证是两个正整数. 输入格式: 输入在一行给出A和B,其间以空格分开.问题是A和B不一定是满足要求的正整数,有时候可能是超出范围的数字.负数.带小数点的实数.甚至是一堆乱码. 注意:我们把输入中出现的第1个空格认为是A和B的分隔.题目保证至少存在一个空格,并且B不是一个空字符串. 输出格式: 如果输入的确是两个正整数,则按格式"A + B = 和"输出.如果某个输入不合要求,则在

input输入框只能输入正整数

input输入框加入限制只能输入正整数,输入其他字符会自动清除: <input type="text" value="1" onkeyup="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(/\D/g,'')}" onafterpaste="if(this.value.le