Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:为什么看不到用gets输入一行的呢In Reply To:为什么看不到用gets输入一行的呢 Posted by:13936266571 at 2016-10-23 15:41:43 > RT //#include <bits/stdc++.h> #include <stdio.h> #include <iostream> #include <algorithm> #include <string.h> #include <cmath> using namespace std; #define INF 0x3f3f3f3f #define pb push_back #define abs(a) (a)>0?(a):-(a) #define min(a,b) (a)>(b)?(a):(b) #define lalal puts("*******") typedef long long int LL ; /*******************************/ const int MOD = 10086; const int N = 32768; int prime[32768],kp; int Is_or[32768]; void shacker() { memset(Is_or,1,sizeof(Is_or)); kp=0; for(int i=2;i<N;i++) { if(Is_or[i]) prime[kp++]=i; for(int j=0;j<kp&&i*prime[j]<N;j++) { Is_or[i*prime[j]]=0; if(0==i%prime[j]) break; } } //printf("%d\n",kp); return ; } char a[101010]; int b[101010]; int c[101010]; int main() { shacker(); while( 1 ) { gets(a); int len = strlen (a); int num =0,tem=0; a[len]=' '; for(int i=0;i<=len;i++) { if(a[i]!=' ') tem=tem*10+a[i]-'0'; else b[num++]=tem, tem=0; } if(num==1&&b[0]==0) break; int n=1; for(int i=0;i<num;i+=2) for(int j=0;j<b[i+1];j++) n*=b[i]; n--; num=0; int flag=0; for(int i=0;i<kp&&n>=prime[i];i++) { c[i]=0; while(n%prime[i]==0) n/=prime[i],c[i]++; } for(int i=kp-1;i>=0;i--) { if(c[i]) { if(flag) printf(" "); printf("%d %d",prime[i],c[i]),flag=1; } } puts(""); } return 0; } /***************************/ 超时我都认 为什么输出超限啊。。 Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator