1405:
#include
#define MAXLEN 65536 using namespace std; int main(){
int n,ni,a[MAXLEN],hash[MAXLEN],k,ki,i,cas=0; while(scanf(\ cas++;//记录实例数量
if(cas>1)//第一次不输出回车 putchar('\\n');
printf(\
k=0;
memset(a,0,sizeof(a));
memset(hash,0,sizeof(hash));
while(n!=1){//如果n!=1表示还未把所有的因子取出 for(ni=2;ni<=n&&n%ni!=0;ni++) ; a[k++]=ni; n/=ni; }
for(ki=0;ki for(i=2;i k-=hash[i];//减少相应的数量hash[i] printf(\ } putchar('\\n'); } return 0; } 1406: #include int i, sum, T, j, count, num1, num2, temp; memset(a, 0, sizeof(a)); for(i=2;i<=10000;i++) { sum = 0; for(j=1;j<=i/2;j++) { if(i%j==0) sum+=j; } if(sum==i) a[i]=1; } scanf(\ while(T--) { count=0; scanf(\ if(num1>num2) { temp=num1; num1=num2; num2=temp; } for(i=num1;i<=num2;i++) { if(a[i]==1) count++; } printf(\ } return 0; } 1407:穷举 #include long x,y,z,num; int i,j,k; while(scanf(\ { for(i=1;i<=sqrt(num);i++) { for(j=i;j<=sqrt(num);j++) { for(k=j;k<=sqrt(num);k++) { if(i*i+j*j+k*k==num) { printf(\ goto end; } } } } end:; } } 1408: #include double d,vul; int k,t; while(scanf(\ { k=1;t=0; while(vul-k*d>eps) {//滴完为止 t+=k+1; vul-=k*d; k++; } if(vul-int(vul/d)*d return 0; } 1412: #include int cmp(const void *a,const void *b) { return *(int *)a-*(int *)b; } int main() { int num1,num2,a[N],b[N],i,k,j,c[20000]; while(scanf(\ { for(i=0;i qsort(a,num1,sizeof(a[0]),cmp); qsort(b,num2,sizeof(b[0]),cmp); i=0,j=0,k=0; for(;i if(a[i] c[k]=a[i++]; else if(a[i]>b[j]) c[k]=b[j++]; else { i++; k--; } } if(i while(i c[k++]=a[i++]; if(j while(j c[k++]=b[j++]; for(i=0;i return 0; } 1418: #include {//采用欧拉定理f+v-e=2 unsigned int n,m;//n是点,m是面,求的是边 while(scanf(\ { printf(\ } return 0; } 1420: #include __int64 a, i, b, c, sets, temp ; scanf(\ while( sets-- ) { scanf(\ temp=a; for(i=1;i a*=temp; a%=c; } a%=c; if(c==1) { printf(\ continue; } printf(\ } return 0; } 1465: #include