第1个回答 2014-04-07
#include <stdio.h>
#include <math.h>
int isPrime(int n) {
int i,flag = 1;
if(n < 2) return 0;
for(i = 2; i < sqrt(n) && flag; ++i)
if(n % i == 0) flag = 0;
return flag;
}
int main() {
int m,i,a;
printf("请输入一个正整数:");
scanf("%d",&m);
if(isPrime(m)) printf("%d是一个素数\n",m);
else {
for(i = 2;i <= (int)sqrt(m);i++) {
if(m%i == 0) {
a = m/i;
printf("%d,%d\n",i,a);
}
}
}
return 0;
}
第2个回答 2014-04-08
//#include "stdafx.h"//vc++6.0加上这一行.
#include "stdio.h"
bool prime(int n){
int i;
if(n>2 && !(n&1) || n<2) return false;
for(i=3; i*i<=n;i+=2)
if(!(n%i)) return false;
return true;
}
void main(void){
int nDec,i,n=2;
printf("Type an integer...\nn=");
scanf("%d",&nDec);
if(nDec==1){
printf(" 1 is no primer or sum...\n");
return;
}
if(!prime(nDec)){
printf("%d = ",nDec);
while(!prime(nDec))
for(i=n;;i==2 ? i++ : i+=2){
if(!prime(i)) continue;
if(!(nDec%i)){
printf("%d x ",n=i);
nDec/=i;
break;
}
}
printf("%d.\n",nDec);
}
else printf("%d is a primer!\n",nDec);
}
第3个回答 2014-04-08
#include<stdio.h>
#include<math.h>
void main()
{
int m,i,j=2,k;
printf("请输入一个一个整数 :");
scanf("%d",&m);
k=(int)sqrt(m);
for(i=2;i<=k;i++)
{
if(m%i==0)
{
printf("%d=",m);
while(m!=1)
{
if(m%j==0)
{
m/=j;
printf("%d",j);
if(m!=1)printf("*");
j=1;
}
j++;
}
printf("\n");
return;
}
}
printf("%d 是一个素数\n",m);
}