#include <stdio.h> #include <string.h> #define N 31 int main() { char c[N]; //存放大数 int length; //记录数据长度 int remain; //记录余数 int n; int flag; //标记是否有余数 while(scanf("%s",c)!=EOF){ length=strlen(c); int num[N]; flag=0; for(int i=0;i<length;i++){ num[i]=c[i]-'0'; } if(c[0]=='-'&&c[1]=='1') //输入为-1 continue; for(int i=2;i<10;i++){ n=0; remain=0; for(int j=0;j<length;j++){ //高位每一位先%k,余数*10再和下一位累加,直到各位,若能取余则说明是因子 n=remain*10+num[j]; remain=n%i; } if(remain==0){ //是因子 printf("%d ",i); flag=1; } } if(flag==0){ //没有因子 printf("none\n"); continue; } printf("\n"); } return 0; }