当前位置:首页 » 编程语言 » c语言求一个数的因子个数

c语言求一个数的因子个数

发布时间: 2022-08-20 01:12:34

① 怎么用c语言来输出一个数的因子个数

设所需计算的数是N,首先N/2,若N为奇数,则(N-1)/2,然后对N/2或(N-1)/2求余,用for循环
a=N/2(若N为奇数就(N-1)/2)
for(i=1;i<=a;i++){
if(a%i==0)
count++;
}
最后count乘以2就行了

② c语言求一个数的因子

#include <stdio.h>

# include <stdlib.h>

#define N 100

long factor(int m,int fac[],int *cp){

int c1,c2,i,k;

long s;

fac[0]=1;

for(c1=s=1,c2=N-1,i=2;;){

k=m/i;

if(m%i==0){

if(i!=k){

fac[c1++]=i;

fac[c2--]=k;

s+=i+k;

printf("i=%d k=%d ",i,k);

}else{

fac[c1++]=i;

s+=i;

}

}

i++;

if(i>=k) break;//这个时候k已经开始等于自身的根号,或者将要出现和之前k对称的i,引起自身重复故退出

}

for(c2++;c2<=N-1;c2++){

fac[c1++]=fac[c2];

printf("%s %d ","**",fac[c2]);

}

*cp=c1;

return s;

}

int main(int argc, char const *argv[])

{

/* code */

int factors[N],i,count;

long sum;

sum = factor(atoi(argv[1]),factors,&count);

for(i=0;i<count;i++){

printf("%5d",factors[i]);

}

printf(" ");

printf("sum=%5ld count=%5d ",sum,count);

return 0;

}

(2)c语言求一个数的因子个数扩展阅读:

有一种说法是“因子不限正负”,不过通常情况下只取正因子。

1, -1, n 和 -n 这些数叫做 n 的明显因子

表示方法:可以用因子|倍数或倍数≡0 (mod 因子) 来表达(参见同余),但用后者时因子一定要是正因子。因子∣倍数式中的垂直线是整除符号。它的统一码值是 U+2223。

例如 42=6x7,因此 7 是 42 的因子,写作 7∣42,亦是42≡0(mod 7)。



③ C语言:编写一个函数,求出一个给定数字的所有因子。

1.对1~本身的各个数取余,为零的即为其因子。

#include<stdio.h>

voidfactor(intn)
{
printf("%dfactorhas:",n);
for(inti=1;i<=n;i++)
{
if(n%i==0)
printf("%d",i);
}
printf(" ");
}

intmain()
{
factor(27);
factor(100);
return0;
}

④ c语言问题 编写一个函数,求出一个给定的数字的所有因子,如72=2*2*2*3*3.

#include<stdio.h>
void main()
{
int x,y,i=2,j=0,m;
printf("输入数字:");
scanf("%d",&x);
m=x;
int a[15]={0};
//设定一个范围足够的数组存放因子
while(i<=x)
{
if((x%i)==0) { x=x/i ;a[j]=i; j++; i=2;}
else i++;
//由于一个数的因子会小于或等于本身,所以可以
//以此设定跳出条件,用遍历的思想去从2开始逐个寻找因子
//如果那个数是因子之一则可以被整除if((x%i)==0)
//以此作为判断条件,而一个数的因子可能会重复
//所以每找到一个就要有重头开始再判断一边
//i=2;就是作为复位的,其实这个程序和算法很简单
//你自己多看两遍就明白了
//如果还有不懂得就直接上我的空间找我好了
}
printf("y=");

if(j==0) printf("%d\n",m);
//这是特殊情况质数
else
{
for(i=0;i<j-1;i++) if(a[i]!=0) printf("%d*",a[i]);
printf("%d\n",a[i]);
}

}

⑤ 用C语言编写一个函数factors,求出一个正整数的所有因子。

#include

#include
//数学函数头文件
main()
{
int
m,i,k=0;
printf("请你输入一个正整数:\n");
scanf("%d",&m);
printf("%d
的因子有:\n",m);
for(i=1;i<=m;i++)
{
if(m%i==0)
{
printf("%6d",i);
k++;
if(k%5==0)printf("\n");
//每五个数换一次行
}
}
getchar();
getchar();
}
你上机运行一下吧,结果是对的,有不明白的地方可以再找我……

⑥ 用c语言求一个数的所有因子

C语言程序如下:

#include <stdio.h>

# include <stdlib.h>

#define N 100

long factor(int m,int fac[],int *cp){

int c1,c2,i,k;

long s;

fac[0]=1;

for(c1=s=1,c2=N-1,i=2;;){

k=m/i;

if(m%i==0){

if(i!=k){

fac[c1++]=i;

fac[c2--]=k;

s+=i+k;

printf("i=%d k=%d ",i,k);

}else{

fac[c1++]=i;

s+=i;

}

}

i++;

if(i>=k) break;//这个时候k已经开始等于自身的根号,或者将要出现和之前k对称的i,引起自身重复故退出

}

for(c2++;c2<=N-1;c2++){

fac[c1++]=fac[c2];

printf("%s %d ","**",fac[c2]);

}

*cp=c1;

return s;

}

int main(int argc, char const *argv[])

{

/* code */

int factors[N],i,count;

long sum;

sum = factor(atoi(argv[1]),factors,&count);

for(i=0;i<count;i++){

printf("%5d",factors[i]);

}

printf(" ");

printf("sum=%5ld count=%5d ",sum,count);

return 0;

}

(6)c语言求一个数的因子个数扩展阅读:

数学概念

假如整数n除以m,结果是无余数的整数,那么我们称m就是n的因子。 需要注意的是,唯有被除数,除数,商皆为整数,余数为零时,此关系才成立。反过来说,称n为m的倍数。

要留意的是:有一种说法是“因子不限正负”,不过通常情况下只取正因子。

1, -1, n 和 -n 这些数叫做 n 的明显因子

⑦ C语言题(因子个数)

你这是求因数个数,不是因子个数。
第二行 51这个数 1 3 17 51.四个因数,输出却是6.

题目到底什么意思

⑧ C语言指针输入一个数算他的因子有几个

#include<stdio.h>

int main()

{

int *p,sum=0;//定义一个指针变量后,p就代表地址(指针),*p就是变量值;

scanf("%d",&*p);

for(int i=1;i<*p;i++)

if(*p%i==0)

{

sum++;

printf("%d ",i);

}

printf(" %d",sum);

return 0;

}//【指针符(*)】+【指针(p)】==【变量值】;

热点内容
服务器共享文件如何查看访问记录 发布:2025-01-19 10:08:55 浏览:400
datasourceSQL 发布:2025-01-19 10:01:25 浏览:838
aspnet网站的编译 发布:2025-01-19 10:00:49 浏览:334
路特仕A9工厂密码是多少 发布:2025-01-19 09:59:44 浏览:257
linux的命令find 发布:2025-01-19 09:42:55 浏览:174
简单的计算机编程 发布:2025-01-19 09:39:54 浏览:520
c语言table 发布:2025-01-19 09:27:50 浏览:953
java8gc 发布:2025-01-19 09:03:30 浏览:648
mac个人收藏添加文件夹 发布:2025-01-19 08:55:12 浏览:531
股票编程书籍 发布:2025-01-19 08:55:01 浏览:120