当前位置:首页 » 编程语言 » c语言求约数个数
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言求约数个数

发布时间: 2022-01-20 14:11:23

1. c语言 约数问题

#include<stdio.h>
main()
{
inti,q,sum=0;
scanf("%d",&q);
for(i=1;i<=q;i++)//从1开始
{if(q%i==0)
printf("%d",i);//直接输出。
}
}

2. 用C语言求最多约数

可能你的问题在读入文件吧
FILE *fpin;
fpin=fopen(path,“r”);
char i;
int s1=0;
int s2=0;
i=fgetc(fpin);

while(i!=’\0')
{
s1=s1*10+atoi(i);
i=i=fgetc(fpin);
}
i=fgetc(fpin);
while(i!=EOF)
{
s2=s2*10+atoi(i);
i=i=fgetc(fpin);
}
这样两个数就存到s1和s2了
未经测试,不敢保证

3. 如何用C语言求一个整数的所有约数之和

思路:
用a除从1到a/2
判断结果,是约数赋值给数组a[0]
...
...

再求数组a[n]的和

4. C语言编程: 输入一个正整数求它的全部约数,并输出。运行结果停留在屏幕上。

#include<stdio.h>void main()
{
int n,i;
printf("输入一个正整数:");
scanf("%d",&n);
printf("约数:\n");
for(i=1;i<=n;i++)
if(n%i==0) printf("%d\n",i);}

5. c语言高效求一个数的约数和

求解这个问题的算法是:
给出n后,枚举比他小的因子f,然后累加起来;
其中可以优化,并实现高效的是——枚举因子。
最简单的枚举因子是从[2, n-1]一个一个枚举;
但我们小学数学就学过“分解质因数”——将一个合数分解成一系列质数乘积的形式,这些单个的质数当然也是该数的因子,好像叫“质因子”,而其他因子可以看作是质因子序列中选出若干个的乘积。
如果真要“高效”,可以使用上面的思路。

然后是,另外一个优化在“分解质因数”过程中。分解质因数,需要枚举质数,枚举质数最高效的是“打表法”——即先把需要的质数用程序算出了,写死到代码里(数组),下次就不用再计算了。

6. C语言有么高效求一个数的所有约数哦

用素数表,求很大的数的约数效率提高很多

#define MAX 10000
int a[MAX]={2,3,5,7,11,13,...};/*前一万个素数*/

7. C语言 快速求一个自然数的约数的个数

对于这个问题我们只需要暴力从2到根号n这个闭区间的所有整数就行了,如果能整除计数就加2,不过如果这个整数的平方就是输入的n则计数只能加1。最后不要忘记1和其自身。如果根号n不是一个整数,那么我们可以向下取整。算法的整体复杂度是根号n,这个算法的时间消耗与根号n成正比,不过可以确定的是n在32位的整型(或者无符号的整型)数据范围内时间消耗还是比较乐观的。参考代码(C语言实现):
#include <stdio.h>
#include <math.h>
int main(void)
{
int i;
int n;
int m;
int num;
scanf("%d", &n);
num = 0;
m = sqrt(n);
for (i=2; i<=m; ++i)
{
if (n % i == 0)
{
num += 2;
if (i * i == n)
{
--num;
}
}
}
/*自然数1应该只有一个因子才对*/
if (n != 1)
{
num += 2;
}
else
{
++num;
}
printf("%d\n", num);
return 0;
}

8. 用c语言求2个数的公约数。

int a,b,i;
scanf("%d%d",&a,&b);
for(i=a>b?b:a;i>=1;i--)
if(a%i==0&&b%i==0)
break;
printf("%d",i);

9. C语言求公约数

1、新建一个C语言源程序,这里使用Visual C++6.0的软件:

10. C语言求最大约数

程序:
#include<stdio.h>
int main()
{
int n,t;
scanf("%d",&n);
for(t=n-1;t>99;t--)
{
if(n%t==0)
{
printf("%d\n",t);
break;
}
}
if(t==99)
printf("No found!\n");
return 0;
}

解释:
你的程序可以运行,没啥语法问题。如果求一个大于等于100的数的约数中的最大三位数,那不就是它本身嘛。比如133&133=0,最大约数就是自己,而且也是三位数。你的意思是不是说求这个数的除了它本身之外的约数中的最大三位数?我发的程序就是这样写的。可能找不到这样的数。