當前位置:首頁 » 編程語言 » 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,最大約數就是自己,而且也是三位數。你的意思是不是說求這個數的除了它本身之外的約數中的最大三位數?我發的程序就是這樣寫的。可能找不到這樣的數。