POJ1365 Prime Land 初等数论

来源:互联网 发布:聚合数据平台 编辑:程序博客网 时间:2024/06/09 22:48

题目给出x的质数分解,求x-1的质数分解式。

该题对输入的处理比较麻烦。我采用一次性读一行的方法。

#include<stdio.h>#include<string.h>int prime[3000];int e[3000];int main(){char a[1000],b[5],c[5];int u,v,x;while(1){gets(a);sscanf(a,"%d",&u);if(u==0)break;x=1;int len=0;int l=strlen(a);    while(1){sscanf(a+len,"%s%s",b,c);sscanf(b,"%d",&u);sscanf(c,"%d",&v);while(v--)x*=u;len+=strlen(b)+2+strlen(c);if(len>l)break;}x--;int tot=0;for(u=2;x>1&&u*u<=x;u++){if(x%u==0){prime[tot]=u;e[tot]=0;do{e[tot]++;x/=u;}while(x%u==0);tot++;}}if(x>1){prime[tot]=x;e[tot++]=1;}for(int i=tot-1;i>0;i--)printf("%d %d ",prime[i],e[i]);printf("%d %d\n",prime[0],e[0]);}return 0;}


0 0
原创粉丝点击