編程找冪因子
❶ 用c語言編程找出自冪數,要求定義個函數,在指定范圍內找出自冪數,統計個數並輸出,越簡單越好!初學者

#include "stdafx.h"
#include <math.h>
#include <iostream>
using namespace std;
#define N 10
int zimishu(int k)
{
int bit=0,temp=k,a[N];
long sum=0;
while (temp)
{
a[bit] = temp % 10;
bit++;
temp = temp / 10;
}
for (int i = 0; i < bit; i++)
sum += pow(a[i], bit);
if (k ==sum)
return 1;
else
return 0;
}
int main()
{
int n,count=0;
cout << "請輸入范圍:" << endl;
cin >> n;
for (int i = 0; i <= n; i++)
{
if (zimishu(i))
{
cout << i << " ";
count++;
}
}
cout << "總數:" << count << endl;
system("pause");
return 0;
}
❷ c語言編程,輸出兩個數字的因子,求最大公約數
#include <stdio.h> int main() { int m, n, p, tmp; printf("請輸入兩個正整數:\n"); scanf("%d %d", &m, &n); p = m * n; while (n != 0) { tmp = m % n; m = n; n = tmp; } printf("最大公約數: %d\n", m); printf("最小公倍數: %d\n", p / m); return 0;}
❸ c語言編程 編寫一個函數,求出一個給定數字的所有因子。如72=2*2*2*3*3。thank you very much.
#include<stdio.h>
intmain(void)
{
intn,i;scanf("%d",&n);
printf("%d=",n);
for(i=2;n>1;i++)
{
while(n%i==0)
{
n/=i;
if(n==1)
printf("%d
",i);
else
printf("%d*",i);
}
}
return0;
}
❹ 程序開發中冪運算,一元,位運算的使用
冪運算符的綁定比在其左側的一元運算符更緊密;但綁定緊密程度不及在其右側的一元運算符。
因此,在一個未加圓括弧的冪運算符和單目運算符序列中,運算符將從右向左求值(這不會限制操作數的求值順序): -1**2 結果將為 -1。
冪運算符與附帶兩個參數調用內置 pow() 函數具有相同的語義:結果為對其左參數進行其右參數所指定冪次的乘方運算。 數值參數會先轉換為相同類型,結果也為轉換後的類型。
對於 int 類型的操作數,結果將具有與操作數相同的類型,除非第二個參數為負數;在那種情況下,所有參數會被轉換為 float 類型並輸出 float 類型的結果。 例如,10**2 返回 100,而 10**-2 返回 0.01。
對 0.0 進行負數冪次運算將導致 ZeroDivisionError。 對負數進行分數冪次運算將返回 complex 數值。 (在早期版本中這將引發 ValueError。)
一元運算符 - (負) 會產生其數值參數的負值。
一元運算符 + (正) 會產生與其數值參數相同的值。
一元運算符 ~ (取反) 的結果是對其整數參數按位取反。 x 的按位取反被定義為 -(x+1)。 它只作用於整數。
在所有三種情況下,如果參數的類型不正確,將引發 TypeError 異常。
二元算術運算符遵循傳統的優先順序。 請注意某些此類運算符也作用於特定的非數字類型。 除冪運算符以外只有兩個優先順序別,一個作用於乘法型運算符,
運算符 * (乘) 將輸出其參數的乘積。 兩個參數或者必須都為數字,或者一個參數必須為整數而另一個參數必須為序列。 在前一種情況下,兩個數字將被轉換為相同類型然後相乘。 在後一種情況下,將執行序列的重復;重復因子為負數將輸出空序列。
❺ 在Java程序中如何編程求冪指數的乘積例如2^31-1和別的數的乘積,想知道超出范圍後輸出值為多少
編個這個有點費時間,暫時沒時間去寫,給你講個思路吧,用一個List存放乘積的每個位數上的數值,假設值為123,那 list.add(3);list.add(2);list.add(1);
31次冪就拿這個list的每個數值相乘,乘積超出10位的,存入到下一個list的位置中。循環直至結果出來,這樣就不會有超出現象了,就算10000次也沒問題
❻ c語言編程中如何輸入冪次方
1、頭文件:#include
2、原型:
double pow(double x, double y);
pow() 函數用來求 x 的 y 次冪(次方)
pow()用來計算以x 為底的 y 次方值,然後將結果返回。設返回值為 ret,則 ret = xy。

3、舉例如下:
double a = pow(4, 2); // 計算4的平方
4、可能導致錯誤的情況:
如果底數 x 為負數並且指數 y 不是整數,將會導致 domain error 錯誤。
如果底數 x 和指數 y 都是 0,可能會導致 domain error 錯誤,也可能沒有;這跟庫的實現有關。
如果底數 x 是 0,指數 y 是負數,可能會導致 domain error 或 pole error 錯誤,也可能沒有;這跟庫的實現有關。
如果返回值 ret 太大或者太小,將會導致 range error 錯誤。
錯誤代碼:
如果發生 domain error 錯誤,那麼全局變數 errno 將被設置為 EDOM;
如果發生 pole error 或 range error 錯誤,那麼全局變數 errno 將被設置為 ERANGE。
注意:1、使用pow函數時,需要將頭文件#include包 含進源文件中。
2、用pow(x,y)的話要用到math.h頭文件。
(6)編程找冪因子擴展閱讀:
1、 三角函數: double sin (double);正弦 double cos (double);餘弦 double tan (double);正切
2 、反三角函數: double asin (double); 結果介於[-PI/2, PI/2] double acos (double); 結果介於[0, PI] double atan (double); 反正切(主值), 結果介於[-PI/2, PI/2] double atan2 (double, double); 反正切(整圓值), 結果介於[-PI/2, PI/2]
3 、雙曲三角函數: double sinh (double); double cosh (double); double tanh (double);
4 、指數與對數: double exp (double); double sqrt (double);開平方 double log (double); 以e為底的對數 double log10 (double);以10為底的對數 double pow(double x, double y);計算以x為底數的y次冪 float powf(float x, float y); 功能與pow一致,只是輸入與輸出皆為浮點數
5 、取整: double ceil (double); 取上整 double floor (double); 取下整
6 、絕對值: double fabs (double);求絕對值 double cabs(struct complex znum) ;求復數的絕對值
7 、標准化浮點數: double frexp (double f, int *p); 標准化浮點數, f = x * 2^p, 已知f求x, p ( x介於[0.5, 1] ) double ldexp (double x, int p); 與frexp相反, 已知x, p求f
8 、取整與取余: double modf (double, double*); 將參數的整數部分通過指針回傳, 返回小數部分 double fmod (double, double); 返回兩參數相除的余數
9 、其他: double hypot(double x, double y);已知直角三角形兩個直角邊長度,求斜邊長度 double ldexp(double x, int exponent);計算x*(2的exponent次冪) double poly(double x, int degree, double coeffs [] );計算多項式 nt matherr(struct exception *e);數學錯誤計算處理程序
❼ C語言 編程求一個自然數m的所有素數因子
1、從最小的因子找起(能找到的最小因子,肯定是素數);
2、找到素因子q後,m反復除以q直至不能整除;
3、重復1、2步驟,直至q==m。
