Ⅰ 用c語言輸出100之間的所有質數
1、首先新建一個空白的c語言文件,引入頭文件,頭文件中包括math庫,稍後會用到,建立主函數:
Ⅱ 如何用c語言計算100和50的公約數
#include<stdio.h>
intmain(){
intm,n;
intremainder;/*divisorischushu,remainderisyushu*/
printf("Entertwointegers:");
scanf("%d%d",&m,&n);
remainder=m%n;/*remainder是余數*/
m=n;/*把除數保存在m中*/
n=remainder;/*把余數保存在n中*/
while(n!=0){
remainder=m%n;
m=n;
n=remainder;
}
printf("Greatestcommondivisor:%d",m);
return0;
}
Ⅲ 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;
}
Ⅳ 運用c語言輸出100以內所有的完全數
1、首先打開vs 2017軟體,打開一個准備好的工程,新建一個C語言文件,先寫入頭文件和main函數,裡面定義需要的用到的4個變數。
Ⅳ 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,最大約數就是自己,而且也是三位數。你的意思是不是說求這個數的除了它本身之外的約數中的最大三位數?我發的程序就是這樣寫的。可能找不到這樣的數。
Ⅵ C語言有么高效求一個數的所有約數哦
用素數表,求很大的數的約數效率提高很多
#define MAX 10000
int a[MAX]={2,3,5,7,11,13,...};/*前一萬個素數*/
Ⅶ C語言 輸出1到100之間的全部素數
有三種方法:
1、輸出1-100以內的素數:
(7)c語言求100的約數擴展閱讀:
在這個小程序中主要用到的是for循環
for 循環語句的一般形式為:
for (表達式1; 表達式2; 表達式3)
{
語句;
}
需要注意的兩點:
1) 表達式1、表達式2和表達式3之間是用分號;隔開的,千萬不要寫成逗號。
2)for(表達式1;表達式2;表達式3)的後面千萬不要加分號,很多新手都會犯這種錯誤——會情不自禁地在後面加分號。
因為 for 循環只能控制到其後的一條語句,而在C語言中分號也是一個語句——空語句。所以如果在後面加個分號,那麼 for 循環就只能控制到這個分號,下面大括弧裡面的語句就不屬於 for 循環了。
Ⅷ 求c語言大神。鍵盤輸入兩個100之內的整數,求出其所有公約數和最大公約數。急急急
#include<stdio.h>
void main()
{
int a,b,num1,num2,temp,i,r;
printf("請輸入兩個正整數:\n");
scanf("%d,%d",&num1,&num2);
if(num1<num2)/*選出較大數*/
{
temp=num1;
num1=num2;
num2=temp;
}
a=num1,b=num2;
r=num1%num2;
while(r!=0)/*輾轉取余演算法*/
{
a=b;
b=r;
r=a%b;
}
printf("它們的最大公約數為:%d\n",a);
printf("以下是%d的公約數:",num1 );
for(i=1;i<=num1;i++)
if(num1%i==0 ) printf("%4d" ,i) ;
printf("以下是%d的公約數:",num2 );
for(i=1;i<=num2;i++)
if(num2%i==0) printf("%4d" ,i) ;
printf("\n" ) ;
}
Ⅸ 如何用c語言求100!的准確值
100!已經超出了現在常用平台的內置數據類型的可表達范圍,不可以簡單地用內置數據類型來做,要用大整數的乘法演算法來做:
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
#include <stdio.h>
void mult(int a[],int b)
{
int i;
long int rc=0;
for (i=1; i<=a[0]; i++) {
rc+=a[i]*b;
a[i]=rc%10;
rc/=10;
}
while (rc)
{
a[++a[0]]=rc%10;
rc/=10;
}
}
void prt(const int *a)
{
int i;
for (i=a[0]; i; i--) {
printf("%d",a[i]);
}
putchar('\n');
}
int *cc(int a[],int n)
{
int i;
for (i = 1; i<=n; i++) {
mult(a,i);
}
return a;
}
int main(void)
{
int c[5000]={1,1}; /*用於保存乘積的每一位數的數組*/
prt(cc(c,100)); /*cc(c,100)是求100!並將結果保存到c數組中,並用prt輸出這個數組的內容*/
return 0;
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------