Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- int check_knight_number(unsigned long long l)
- {
- int flag=1;
- char s[20];
- sprintf(s,"%llu",l);
- for(int i=0;s[i]!='\0';i++)
- {
- if(s[i]!='4'&& s[i]!='7')
- {
- flag=0;
- break;
- }
- }
- return flag;
- }
- int main()
- {
- int n,tc=0;scanf("%d",&n);
- while(++tc<=n)
- {
- unsigned long long l;
- int flag=0;
- scanf("%llu",&l);
- if(check_knight_number(l))
- {
- printf("Case #%d: T\n",tc);
- continue;
- }
- //check if it is implict kinght number
- if(l%4==0||l%7==0)
- {
- printf("Case #%d: T\n",tc);
- continue;
- }
- int f2=(l%2==0)?1:2;
- for(unsigned long long i=2+f2-1;i*i<=l;i+=f2)
- {
- if(l%i!=0)continue;
- if(i%4==0||i%7==0)
- {
- flag=1;
- break;
- }
- flag=check_knight_number(i);
- if(flag)break;
- flag=check_knight_number(l/i);
- if(flag)break;
- }
- if(flag || !l)printf("Case #%d: T\n",tc);
- else printf("Case #%d: F\n",tc);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement