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しかし、それは素因数素数ではありません。
また、予防策の一環として、アスタリスクとコメント。