#include<cstdio>#include<iostream>;#include<stdio.h>usingnamespace std;int n;int minn =-100000;intgcd(int x,int y){//来求最大公约数return(x ==0)?y:gcd(y%x,x);}intmain(){while(~scanf("%d",&n)){if(n <2){break;}int sum =(1+n)*n/2;int ans = minn;for(int i =2;i < sum;i ++){if(sum %i ==0){
ans = i > ans?i:ans;}}printf("%d\n",ans);}return0;}
hdu 1575 wa 代码:
#include<bits/stdc++.h>usingnamespace std;constint mod =9973;constint maxn=10;int n,k;int matrix[maxn][maxn];int ans[maxn][maxn];int temp[maxn][maxn];voidqpow(int k,int n){if(k ==0){//ans = matrixfor(int i =0;i < n;i ++){for(int j =0;j < n;j ++){
ans[i][j]=(i == j)?1:0;}}return;}elseif(k%2==1){qpow(k-1,n);//做一次乘for(int y =0;y < n;y ++){for(int t =0;t < n;t ++){for(int i =0;i < n;i ++){
temp[y][t]+= ans[y][i]*matrix[i][t]%mod;}}}for(int i =0;i < n;i ++){for(int j =0;j < n;j ++){
ans[i][j]= temp[i][j];}}memset(temp,0,sizeof(temp));return;}else{qpow(k/2,n);for(int y =0;y < n;y ++){for(int t =0;t < n;t ++){for(int i =0;i < n;i ++){
temp[y][t]+= ans[y][i]*ans[i][t]%mod;}}}for(int i =0;i < n;i ++){for(int j =0;j < n;j ++){
ans[i][j]= temp[i][j];}}memset(temp,0,sizeof(temp));return;}}intmain(){int t;scanf("%d",&t);while(t--){scanf("%d %d",&n,&k);for(int i =0;i < n;i ++){for(int j =0;j < n;j ++){scanf("%d",&matrix[i][j]);}}qpow(k,n);int ans_num =0;for(int i =0;i < n;i ++){
ans_num += ans[i][i]%mod;}
ans_num = ans_num%mod;printf("%d\n",ans_num);}}