3、素因数分解

3、タイトル:分解品質係数

:整数xを入力し、X = axbxcx ...出力フォーマットに従って、式中、a、b、c、等X因子分解によって得られ、A、B、C、等を必要とするいくつかの定性的です。

#include <stdio.h>
int isPrime (int x);
int main(){
	int x, k;
	scanf("%d", &x);
	
	//输入1的话,输出也是正确的
	printf("%d=", x);
	if( isPrime(x) == 1){
		printf("%d", x);
	}else {
		for (k=2; k<=x; k++){     
			while( x!=1){
				if(x%k ==0){
					printf("%d", k);
					x /=k;
				} else {
					break;
				}
				if(x!=1)
				printf("x"); 
			}
		}
	}
	return 0;
} 

int isPrime (int x){
	int i, k, ret=1;
	k = sqrt(x);			//******将sqrt(x)赋给k,而不用i<=sqrt(x),这样可以只调用一次sqrt()******
	for( i=2; i<=k; i++){   //******要用<=,如x=4,k=sqrt(x)=2,判据是i<k,则进不去循环从而判定4为素数******
		if(x%i ==0){
			ret=0;
			break;
		}
	}
	return ret;
}

上記のコードである。その理由は、なぜ品質係数(すなわち、得られた因子分解は素数である)ので、たとえば、Xが確かに割り切れないように、即ち割り切れる数X 2、3、4、6で割り切れることができず確かに、数がxで割り切れる1以外の数の倍数ではない確かに(1以外の任意の素数の倍数ではなく、独自の)1と素数であることができます。1しかし、それは素因数素数ではありません。

また、予防策の一環として、アスタリスクとコメント。

公開された16元の記事 ウォンの賞賛0 ビュー332

おすすめ

転載: blog.csdn.net/NAU_LHT/article/details/104144672