C++不同的质因子统计n!中不同的质因子各有多少个?例如6!=720=2*2*2*2*3*3*5;质因子2有4个3有2个
来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/06/10 19:24:54
C++不同的质因子
统计n!中不同的质因子各有多少个?例如6!=720=2*2*2*2*3*3*5;质因子2有4个3有2个5有1个.输入:一个正整数 n ( 10
统计n!中不同的质因子各有多少个?例如6!=720=2*2*2*2*3*3*5;质因子2有4个3有2个5有1个.输入:一个正整数 n ( 10
#include<iostream>
#include<cstring>
using namespace std;
int ok[256]; //计数
int num[256], cot; //储存
void cal(int n)
{
for(int i = 2; n != 1; i++)
{
while(n % i == 0)
{
n /= i;
if(ok[i] == 0) num[cot++] = i;
ok[i]++;
}
}
return;
}
int main()
{
int n;
cin>>n;
for(int i = 1; i <= n; i++)
cal(i);
for(int i = 0; i < cot; i++)
cout<<num[i]<<" "<<ok[num[i]]<<endl;
return 0;
}比如6!=6*5*4*3*2*1;只需要把6 5 4 3 2 1 这六个数的因子找出来,再统计数目就行了.比如因子6和4;6 = 3 * 2把3,2存储在num[]里面,并且在ok[]里面计数各为1,;4 = 2 * 2,此时因为2已经表明已经存在了,所以只需要在ok[]里面计数就行了.最后分别打印因子和因子对应的个数就行了.
#include<cstring>
using namespace std;
int ok[256]; //计数
int num[256], cot; //储存
void cal(int n)
{
for(int i = 2; n != 1; i++)
{
while(n % i == 0)
{
n /= i;
if(ok[i] == 0) num[cot++] = i;
ok[i]++;
}
}
return;
}
int main()
{
int n;
cin>>n;
for(int i = 1; i <= n; i++)
cal(i);
for(int i = 0; i < cot; i++)
cout<<num[i]<<" "<<ok[num[i]]<<endl;
return 0;
}比如6!=6*5*4*3*2*1;只需要把6 5 4 3 2 1 这六个数的因子找出来,再统计数目就行了.比如因子6和4;6 = 3 * 2把3,2存储在num[]里面,并且在ok[]里面计数各为1,;4 = 2 * 2,此时因为2已经表明已经存在了,所以只需要在ok[]里面计数就行了.最后分别打印因子和因子对应的个数就行了.
设n为正整数,证明:数2∧2∧n+2∧2∧(n-1)+1,至少有n个不同的质因子
如果P,S,R是三个不同的质数,且都大于2,并 N=PxSxR.请问N有多少个正因子(包含1和它本身).请详解,8
n是满足下列条件的正整数中最小的数:(1)n是75的倍数(2)n恰有75个正整数因子,求n/7
用C语言写:由键盘输入一个正整数n,求n有多少个不同的正整数因子.只剩十分钟求解,
c语言 求出 [900,1000] 间有偶数个因子(这里因子不含1和自身)的数有多少个,其中
用C语言编写以一个函数,对输入的整数k输出它的全部素数因子.例如:当K=126时,素数因子为:2,3,3,7.要求按如下
求第1500个只有2,3,5因子的数.数是从小到大排列,第一个数是1,1=2^0*3^0*5^0
求第1500个只有2,3,5因子的数.数是从小到大排列,第一个数是1,1=2^0*3^0*5^0.
C语言.输入一个正整数,输出它的所有质数的因子(如180的质数因子为2,2,3,3,5)
如果一个正整数恰好等于它的所有因子(包括1但不包括自身)之和,则称之为“完数”,例如6的因子是1,2,3,且6=1+2+
关于姐妹数对于任意自然数n,印射T为:T(n)=n的真因子之和例如:T(4)=2 T(6)=2+3=5 T(p)=0 p
若某整数N的所有因子之和等于N的倍数,则N称为多因子完备数,如数28,其因子之和1+2+4+7+14+28=56=2*2