CodeChef submission 193539 (C++ 4.3.2) plaintext list. Status: AC, problem PRIME1, contest . By codegambler (codegambler), 2010-02-28 15:42:27.
//===================================================================================== // Filename: DPC104_1.cpp // Description: // Source: // ID: // Created: 02/27/2010 10:32:56 PM // Author: pankaj kumar, pankaj4u4m@gmail.com //===================================================================================== #include <cassert>//c headers in c++ #include <cctype> #include <cfloat> #include <cmath> #include <cstdarg> #include <cstdio> #include <cstdlib> #include <cstring> #include <climits> #include <algorithm>//c++ headers #include <bitset> #include <complex> #include <deque> #include <functional> #include <iostream> #include <iomanip> #include <iterator> #include <limits> #include <list> #include <map> #include <memory> #include <new> #include <numeric> #include <queue> #include <set> #include <sstream> #include <stack> #include <string> #include <utility> #include <valarray> #include <vector> using namespace std; /*START OF TEMPLATE:BY_PANKAJ_CODEGAMBLER*/ #define INF 2000000000//::INF #define VAR(x,a) __typeof(a) x=(a)//::VAR( #define FE(it,c) for(VAR(it,(c).begin());it!=(c).end();++it)//::FE( #define FOR(i,a,b) for(int i=(int)(a),_b=(int)(b) ; i < _b;++i)//::FOR( #define FORR(i,a,b) for(int i=(a),_b=(b);i>=_b;--i)//::FORR( #define REP(i,n) FOR(i,0,n)//::REP( #define ALL(c) (c).begin(),(c).end()//::ALL( #define SZ(c) (int)(c).size()//::SZ( #define PB push_back//::PB #define PF push_front//::PF #define V(x) vector< x >//::V( #define VI V(int)//::VI #define VVI V(VI)//::VII #define VS V(string)//::VS #define PI pair< int,int >//::PI #define MP make_pair//::MP #define pi 3.14159265358979323846//::pi const double eps=1e-11;//::eps typedef long long LL;//::LL typedef unsigned long long ULL;//::ULL typedef long double LD;//::LD template<class T> inline T lowbit(T n){return (n^(n-1))&n;}//::lowbit( template<class T> inline int countbit(T n){return (n==0)?0:(1+countbit(n&(n-1)));}//::countbit( template<class T> inline T sqr(T x){return x*x;}//::sqr /* Numeric Function */ template<class T> inline T gcd(T a,T b)//::gcd( {if(a<0)return gcd(-a,b);if(b<0)return gcd(a,-b);while (b > 0){a = a % b;a ^= b;b ^= a; a ^= b; } return a;} template<class T> inline T lcm(T a,T b)//::lcm( {if(a<0)return lcm(-a,b);if(b<0)return lcm(a,-b);return a*(b/gcd(a,b));} template<class T> inline bool isPrime(T n)//::isPrime( {if(n<=1)return false;for (T i=2;i*i<=n;i++) if (n%i==0) return false;return true;} template<class T> inline T euclide(T a,T b,T &x,T &y)//::euclide( {if(a<0){T d=euclide(-a,b,x,y);x=-x;return d;} if(b<0){T d=euclide(a,-b,x,y);y=-y;return d;} if(b==0){x=1;y=0;return a;}else{T d=euclide(b,a%b,x,y);T t=x;x=y;y=t-(a/b)*y;return d;}} template<class T> inline vector<pair<T,int> > factorize(T n)//::factorize( {vector<pair<T,int> > R;for (T i=2;n>1;){if (n%i==0){int C=0;for (;n%i==0;C++,n/=i);R.push_back(make_pair(i,C));} i++;if (i>n/i) i=n;}if (n>1) R.push_back(make_pair(n,1));return R;} template<class T> inline T eularFunction(T n)//::eularFunction( {vector<pair<T,int> > R=factorize(n);T r=n;for (int i=0;i<R.size();i++)r=r/R[i].first*(R[i].first-1);return r;} /* Mathematics Fraction Class */ template<class T> struct Fraction{T a,b;Fraction(T a=0,T b=1);string toString();};//::Fraction template<class T> Fraction<T>::Fraction(T a,T b){T d=gcd(a,b);a/=d;b/=d;if (b<0) a=-a,b=-b;this->a=a;this->b=b;} template<class T> string Fraction<T>::toString(){ostringstream sout;sout<<a<<"/"<<b;return sout.str();} template<class T> Fraction<T> operator+(Fraction<T> p,Fraction<T> q){return Fraction<T>(p.a*q.b+q.a*p.b,p.b*q.b);} template<class T> Fraction<T> operator-(Fraction<T> p,Fraction<T> q){return Fraction<T>(p.a*q.b-q.a*p.b,p.b*q.b);} template<class T> Fraction<T> operator*(Fraction<T> p,Fraction<T> q){return Fraction<T>(p.a*q.a,p.b*q.b);} template<class T> Fraction<T> operator/(Fraction<T> p,Fraction<T> q){return Fraction<T>(p.a*q.b,p.b*q.a);} /*Matrix Operations*/ const int MaxMatrixSize=40;//::MaxMatrixSize template<class T> inline void showMatrix(int n,T A[MaxMatrixSize][MaxMatrixSize])//::showMatrix( {for(int i=0;i<n;i++){for(int j=0;j<n;j++)cout<<A[i][j];cout<<endl;}} template<class T> inline T checkMod(T n,T m) {return (n%m+m)%m;}//::checkMod( template<class T> inline void identityMatrix(int n,T A[MaxMatrixSize][MaxMatrixSize])//::identityMatrix( {for(int i=0;i<n;i++)for(int j=0;j<n;j++) A[i][j]=(i==j)?1:0;} template<class T> inline void addMatrix(int n,T C[MaxMatrixSize][MaxMatrixSize],T A[MaxMatrixSize][MaxMatrixSize],T B[MaxMatrixSize][MaxMatrixSize])//::addMatrix( {for(int i=0;i<n;i++) for(int j=0;j<n;j++) C[i][j]=A[i][j]+B[i][j];} template<class T> inline void subMatrix(int n,T C[MaxMatrixSize][MaxMatrixSize],T A[MaxMatrixSize][MaxMatrixSize],T B[MaxMatrixSize][MaxMatrixSize])//::subMatrix( {for(int i=0;i<n;i++) for(int j=0;j<n;j++) C[i][j]=A[i][j]-B[i][j];} template<class T> inline void mulMatrix(int n,T C[MaxMatrixSize][MaxMatrixSize],T _A[MaxMatrixSize][MaxMatrixSize],T _B[MaxMatrixSize][MaxMatrixSize])//::mulMatrix( { T A[MaxMatrixSize][MaxMatrixSize],B[MaxMatrixSize][MaxMatrixSize]; for(int i=0;i<n;i++) for(int j=0;j<n;j++) A[i][j]=_A[i][j],B[i][j]=_B[i][j],C[i][j]=0; for(int i=0;i<n;i++) for(int j=0;j<n;j++) for(int k=0;k<n;k++) C[i][j]+=A[i][k]*B[k][j];} template<class T> inline void addModMatrix(int n,T m,T C[MaxMatrixSize][MaxMatrixSize],T A[MaxMatrixSize][MaxMatrixSize],T B[MaxMatrixSize][MaxMatrixSize])//::addModMatrix( {for(int i=0;i<n;i++) for(int j=0;j<n;j++) C[i][j]=checkMod(A[i][j]+B[i][j],m);} template<class T> inline void subModMatrix(int n,T m,T C[MaxMatrixSize][MaxMatrixSize],T A[MaxMatrixSize][MaxMatrixSize],T B[MaxMatrixSize][MaxMatrixSize])//::subModMatrix( {for(int i=0;i<n;i++) for(int j=0;j<n;j++) C[i][j]=checkMod(A[i][j]-B[i][j],m);} template<class T> inline T multiplyMod(T a,T b,T m) {return (T)((((LL)(a)*(LL)(b)%(LL)(m))+(LL)(m))%(LL)(m));}//::multiplyMod( template<class T> inline void mulModMatrix(int n,T m,T C[MaxMatrixSize][MaxMatrixSize],T _A[MaxMatrixSize][MaxMatrixSize],T _B[MaxMatrixSize][MaxMatrixSize])//::mulModMatrix( { T A[MaxMatrixSize][MaxMatrixSize],B[MaxMatrixSize][MaxMatrixSize]; for(int i=0;i<n;i++) for(int j=0;j<n;j++) A[i][j]=_A[i][j],B[i][j]=_B[i][j],C[i][j]=0; for(int i=0;i<n;i++) for(int j=0;j<n;j++) for(int k=0;k<n;k++) C[i][j]=(C[i][j]+multiplyMod(A[i][k],B[k][j],m))%m;} template<class T> inline T powerMod(T p,int e,T m)//::powerMod( {if(e==0)return 1%m;else if(e%2==0){T t=powerMod(p,e/2,m);return multiplyMod(t,t,m);}else return multiplyMod(powerMod(p,e-1,m),p,m);} /*Point&Line*/ double distS(double x1,double y1,double x2,double y2){return sqr(x1-x2)+sqr(y1-y2);}//::distS( template<class T> T cross(T x0,T y0,T x1,T y1,T x2,T y2){return (x1-x0)*(y2-y0)-(x2-x0)*(y1-y0);}//::cross( int crossOper(double x0,double y0,double x1,double y1,double x2,double y2)//::crossOper( bool isIntersect(double x1,double y1,double x2,double y2,double x3,double y3,double x4,double y4)//::isIntersect( {return crossOper(x1,y1,x2,y2,x3,y3)*crossOper(x1,y1,x2,y2,x4,y4)<0 && crossOper(x3,y3,x4,y4,x1,y1)*crossOper(x3,y3,x4,y4,x2,y2)<0;} /* Most Common Coversion */ template<class T> int toInt(T n){int r=0;istringstream ist(n);ist>>r;return r;}//::toInt( template<class T> long long toLong(T n){istringstream ist(n);long long r;ist>>r;return r;}//::toLL( template<class T> string toString(T n){stringstream ost;ost<<n;ost.flush();return ost.str();}//::toString( template<class T> long double toDouble(T n){long double r=0;istringstream sin(n);sin>>r;return r;}//::toDouble( template<class T> void stoa(string s,int &n,T A[]){n=0;istringstream sin(s);for(T v;sin>>v;A[n++]=v);}//::stoa( template<class T> void atos(int n,T A[],string &s){ostringstream sout;for(int i=0;i<n;i++){if(i>0)sout<<' ';sout<<A[i];}s=sout.str();}//::atos( template<class T> void atov(int n,T A[],vector<T> &vi){vi.clear();for (int i=0;i<n;i++) vi.push_back(A[i]);}//::atov( template<class T> void vtoa(vector<T> vi,int &n,T A[]){n=vi.size();for (int i=0;i<n;i++)A[i]=vi[i];}//::vtoa( template<class T> void stov(string s,vector<T> &vi){vi.clear();istringstream sin(s);for(T v;sin>>v;vi.push_back(v));}//::stov( template<class T> void vtos(vector<T> vi,string &s){ostringstream sout;int a=vi.size();for (int i=0;i<a;i++){if(i>0)sout<<' ';sout<<vi[i];}s=sout.str();}//::vtos( /* Input Output Function */ #define INPUT fread_unlocked(IBUF, 1, BUFSIZE, stdin);//::INPUT #define BUFSIZE (1<<26) char IBUF[BUFSIZE+1], *inputptr=IBUF, OBUF[BUFSIZE+1], *outputptr=OBUF, DIP[20]; #define DIG(a) (((a)>='0')&&((a)<='9'))//::DIG( #define getChar(t) {t=*inputptr++;}//::getChar( template<class T>inline bool getInt(T &j) {j=0;int _t;getChar(_t);if(_t==0)return false;char sign;while(!DIG(_t)&&_t!=0){sign=_t;getChar(_t);}while(DIG(_t)){j=10*j+(_t-'0');getChar(_t);}if(sign == '-') j = -j;*inputptr--;return j==0&&_t==0?false:true;}//::getInt( inline bool getString(char *s) {char _c;getChar(_c);if(_c==0)return false;while(_c==10||_c==32)getChar(_c);while(_c != 10&&_c != 32&&_c!=0){*s++=_c;getChar(_c)}*s=0;inputptr--;return s[0]==0&&_c==0?false:true;}//::getString( template<class T> inline void putInt(T x, char n=0) {int y, dig=0;while(x){y=x%10;DIP[dig++]=y+'0';x/=10;}while (dig--) *outputptr++=DIP[dig];n?*outputptr++=n:0;}//::putInt( template<class T> inline void putString(T *s, char n=0){while(*s)*outputptr++=*s++;n?*outputptr++=n:0;}//::putString( #define putChar(c) {*outputptr++=c;}//::putChar( #define putLine {*outputptr++=10;}//::putLine( #define OUTPUT fputs(OBUF, stdout);//::OUTPUT /* Only for Debugging */ #define out(__debug) cout << #__debug<< "=" <<__debug << endl;//::out( template<class T> void outC(T A)//::outContainer template<class T> void outA(T A[],int n)//::outArray { cout<<"{"; for (int i=0;i<n;i++) cout<<A[i]<<" "; cout<<"}"<<endl;} template<class T> void outV(vector<T> A,int n=-1)//::outVector { if (n<0) n=SZ(A); cout<<"{"; for (int i=0;i<n;i++) cout<<A[i]<<" "; cout<<"}"<<endl;} template<class T> static void split(const string &s, vector<T> &out)//::split( {istringstream in(s);out.clear();copy(istream_iterator<T>(in), istream_iterator<T>(), back_inserter(out));} /*END TEMPLATE:BY_PANKAJ_CODEGAMBLER*/ void prime(int L,int U) { int d=U-L+1; bool flag[d]; for (int i=L%2;i<d;i+=2){ flag[i]=true;}//every position of even number false for (int i=3;i<d;i+=2) { //if (flag[i]==true) continue;//given number is already set prime int mod=L%i; int t; if(mod>0)t=i-mod; else t=mod; if(L/i==1||L/i==0)t+=i; for(int j=t;j<d;j+=i){flag[j]=true;} //else for(int j=t-L;j<d;j+=i)flag[j]=false; } if (L<=1) flag[1-L]=true; if (L<=2) {putInt(2, 10);} for (int i=L%2?0:1;i<d;i+=2) if (flag[i]==false) putInt(L+i,10); } //#define codegambler int main() { #ifdef codegambler #endif int T; cin>>T; while(T--) { int m,n; prime(m,n); putLine; } OUTPUT; return 0; }
Comments

