View Code of Problem 91

//打素数表
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
const int maxn=10010;
bool p[maxn];
int isPrime(int n)
{
	if(n<=1) return false;
	int sqr=(int)sqrt(1.0*n);
	for(int i=2;i<=sqr;i++)
	{
		if(n%i==0)
			return false;
	}
	return true;
}
void FindPrime()
{
	for(int i=0;i<maxn;i++)
	{
		if(isPrime(i))
		p[i]=true;
	}
}

int main()
{
 
    FindPrime();
	int n=0;
	scanf("%d",&n);
	int len=n;
	printf("%d=",n);
	for(int i=2;i<len;i++)
	{
		while(p[i]==true&&n%i==0)
		{
			printf("%d",i);
			if(n/i!=1)
			{
				printf("*");
			}
			n=n/i;
		}
	}
	system("pause");
}


	

Double click to view unformatted code.


Back to problem 91