hdu1164筛选法对整数分解

来源:互联网 发布:江西淘宝大学电话 编辑:程序博客网 时间:2024/05/16 10:46
#include<iostream>#include<cmath>#define N 65536using namespace std;int prime[N],nprime;bool isprime[N];void init(){int i,j;nprime=0;memset(isprime,0,sizeof(isprime));isprime[1]=1;for(i=2;i<=sqrt(N-1.0);i++){if(isprime[i]==0){nprime++;prime[nprime]=i;for(j=i*i;j<N;j+=i)isprime[j]=1;}}}void divide(int n){int i,ct=0;int temp=sqrt(n+0.0);for(i=1;i<=nprime;i++){if(prime[i]>temp)break;while(n%prime[i]==0){ct++;n/=prime[i];if(ct!=1)printf("*");printf("%d",prime[i]);}}if(n!=1){ct++;if(ct!=1)printf("*");printf("%d",n);}}int main(){int n;init();while(scanf("%d",&n)!=EOF){divide(n);printf("\n");}}


 

原创粉丝点击