是否被整除
时间限制:
1000 ms | 内存限制:
65535 KB
难度:
2
-
描述
-
一个位数不大于100万位的正整数,如果它既能被11整除又能被2的n次方整除就输出YES否则输出NO
-
输入
-
输入有多组数据每组数据有两行
第一行一个n代表2的n次方(0<n<18)
第二行一个整数
输出
- 输出只有一行每行一个YES或NO 样例输入
-
1 110 2 1100 3 110
样例输出
-
YES YES NO
#include<stdio.h> #include<string.h> #include<math.h> int main() { int n; char str[1000005]; while(scanf("%d",&n)!=EOF) { getchar(); scanf("%s",str); int s=1; int s1=0; int s2=0; for(int i=0;i<n;i++) { s*=2; } int len=strlen(str); for(int i=0;i<len;i++) { s1=s1*10+(str[i]-'0'); s1=s1%s; s2=s2*10+(str[i]-'0'); s2=s2%11; } if(s1==0&&s2==0) printf("YES\n"); else printf("NO\n"); } return 0; }
-
输入有多组数据每组数据有两行