zoukankan      html  css  js  c++  java
  • BNUOJ 19297 Code Refactoring

    Code Refactoring

    3000ms
    131072KB
     
    This problem will be judged on UVA. Original ID: 10879
    64-bit integer IO format: %lld      Java class name: Main
     
     
    Problem B
    Code Refactoring
    Time Limit: 2 seconds

     

    "Harry, my dream is a code waiting to be
    broken. Break the code, solve the crime."
    Agent Cooper

    Several algorithms in modern cryptography are based on the fact that factoring large numbers is difficult. Alicia and Bobby know this, so they have decided to design their own encryption scheme based on factoring. Their algorithm depends on a secret code, K, that Alicia sends to Bobby before sending him an encrypted message. After listening carefully to Alicia's description, Yvette says, "But if I can intercept K and factor it into two positive integers, A and B, I would break your encryption scheme! And theK values you use are at most 10,000,000. Hey, this is so easy; I can even factor it twice, into two different pairs of integers!"

    Input
    The first line of input gives the number of cases, N (at most 25000). N test cases follow. Each one contains the code, K, on a line by itself.

    Output
    For each test case, output one line containing "Case #xK = A * B = C * D", where ABC and D are different positive integers larger than 1. A solution will always exist.

    Sample Input Sample Output
    3
    120
    210
    10000000
    
    Case #1: 120 = 12 * 10 = 6 * 20
    Case #2: 210 = 7 * 30 = 70 * 3
    Case #3: 10000000 = 10 * 1000000 = 100 * 100000
    
     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <cstdlib>
     5 #include <vector>
     6 #include <climits>
     7 #include <algorithm>
     8 #include <cmath>
     9 #define LL long long
    10 using namespace std;
    11 int main(){
    12     int kase,x,i,j,k = 1;
    13     int a[2],b[2];
    14     scanf("%d",&kase);
    15     while(kase--){
    16         scanf("%d",&x);
    17         for(j = 0,i = 2; i < x && j < 2; i++){
    18             if(x%i == 0){
    19                 a[j] = i;
    20                 b[j++] = x/i;
    21             }
    22         }
    23         printf("Case #%d: %d = %d * %d = %d * %d
    ",k++,x,a[0],b[0],a[1],b[1]);
    24     }
    25     return 0;
    26 }
    View Code
  • 相关阅读:
    windows相关命令记录
    使用addviewController()实现无业务逻辑跳转
    eclipse实用快捷键
    spring注解的相关配置
    day15-python-函数参数、名称空间、作用域
    day14-python-函数参数
    day13-seek、文件修改、函数及其参数
    day12-python-文件读取模式,文件指针移动
    day11-python-文件基础操作
    Ubuntu 更新软件的命令
  • 原文地址:https://www.cnblogs.com/crackpotisback/p/3836671.html
Copyright © 2011-2022 走看看