Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2016
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.21 KB | None | 0 0
  1. #include <stdio.h>
  2. int check_knight_number(unsigned long long l)
  3. {
  4.     int flag=1;
  5.     char s[20];
  6.     sprintf(s,"%llu",l);
  7.     for(int i=0;s[i]!='\0';i++)
  8.     {
  9.         if(s[i]!='4'&& s[i]!='7')
  10.         {
  11.             flag=0;
  12.             break;
  13.         }
  14.     }
  15.     return flag;
  16. }
  17. int main()
  18. {
  19.     int n,tc=0;scanf("%d",&n);
  20.     while(++tc<=n)
  21.     {
  22.         unsigned long long l;
  23.         int flag=0;
  24.         scanf("%llu",&l);
  25.         if(check_knight_number(l))
  26.         {
  27.             printf("Case #%d: T\n",tc);
  28.             continue;
  29.         }
  30.         //check if it is implict kinght number
  31.         if(l%4==0||l%7==0)
  32.         {
  33.             printf("Case #%d: T\n",tc);
  34.             continue;
  35.         }
  36.         int f2=(l%2==0)?1:2;
  37.         for(unsigned long long i=2+f2-1;i*i<=l;i+=f2)
  38.         {
  39.             if(l%i!=0)continue;
  40.             if(i%4==0||i%7==0)
  41.             {
  42.                 flag=1;
  43.                 break;
  44.             }
  45.             flag=check_knight_number(i);
  46.             if(flag)break;
  47.             flag=check_knight_number(l/i);
  48.             if(flag)break;
  49.         }
  50.         if(flag || !l)printf("Case #%d: T\n",tc);
  51.         else printf("Case #%d: F\n",tc);
  52.     }
  53.     return 0;
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement