1. 从键盘输入一个整数m,若m不是素数,则计算并输出其所有因子(不包括1)。例如对于16,输出2,4,8;否则输出“No divisor! It is a prime number”
#include"stdio.h"
int isPrime(int x){
int i=x-1;
while(x%i!=0){
i--;
}
return i>1?0:1;
}
int main(){
int n,i;
printf("n:");
scanf("%d",&n);
if(isPrime(n))
printf("No divisor! It is a prime number\n");
else {
for(i=2;i<n;i++){
if(n%i==0)
printf("%4d",i);
}
}
printf("\n");
return 0;
}
2. 从键盘输入一个整数m,若m不是素数,则对m进行质因数分解,并将m表示为质因数从小到大顺序排列的成绩形式输出,否则输出“ It is a prime number”。
例如,用户输入90时,程序输出90 = 2 * 3 * 3 * 5;用户输入17时,程序输出“ It is a prime number”。
#include"stdio.h"
int isPrime(int x){
int i=x-1;
while(x%i!=0){
i--;
}
return i>1?0:1;
}
void outputPrimeFactor(int x){
int i;
if(!isPrime(x)){
for(i=2;i<x;i++){
if(x%i==0){
printf("%d * ",i);
outputPrimeFactor(x/i);
return ;
}
}
}else{
printf("%d",x);
}
}
int main(){
int n,i;
printf("n:");
scanf("%d",&n);
if(isPrime(n))
printf("It is a prime number\n");
else {
printf("%d = ",n);
outputPrimeFactor(n);
}
printf("\n");
return 0;
}
|