zoukankan      html  css  js  c++  java
  • 经典c程序(0030) ---求不可约分数

    /************************************************************************************** 
    * Function     : test 
    * Create Date  : 2014/05/22
    * Author       : NTSK13 
    * Email        : beijiwei@qq.com 
    * Copyright    : 欢迎大家和我一起交流学习,转载请保持源文件的完整性。 
    *                任何单位和个人不经本人允许不得用于商业用途 
    * Version      : V0.1                    
    ***************************************************************************************                    
    经典c程序(0030) ---求不可约分数 
              
    	题目:
    	
    	Though prime numbers used to belong to pure mathematics traditionally, they’re more related now to our real world thanks to the development of cryptology and computers in late 20th century. 
    	The public-key cryptography has introduced the concept, ‘it is easy to encode but hard to decode,’ increasing the convenience and reliability of the cryptography system. 
    	Another concept, ‘it is easy to calculate but hard to inverse calculate,’ applies to integer factorization. 
    	RSA cryptography system, which uses such a characteristic of integer factorization, encodes by multiplication of p and q (p*q), a very large prime number each, but needs to know what each p and q exactly is to decode it.
    	For example, it is easy to multiply two five-digit numbers, but in a given formula, ‘p*q = 1459160519,’ it will take long to find the right p and q pair (34583, 42193). 
    	In reality, the numbers used by RSA are prime numbers of hundreds of digits. 
    	For this reason, two issues have gained importance: primality test, which assesses whether a large number is a prime number or not, and prime factorization algorithms of such large numbers. 
    	The cryptography system in development process by our company’s research lab is also based on irreducible fractions where such algorithms can be applied. 
    	Figure out the problem below in order to help us design a safe and easy to use cryptography system that is right for mobile devices. 
    	
    	
    	When a number N is given, use another number (≤ N) and find out all possible irreducible fractions. (≥ 0, ≤ 1)
    	For example, if N = 5, the number of possible irreducible fractions are 11 as below.
    	 
    	0 1/5 1/4 1/3 2/5 1/2 3/5 2/3 3/4 4/5 1 
    	
    	Time limits: 1 second(java: 2 seconds)
    	 
    	Input format
    	
    	Input may include many test cases. The number of test cases, T, is given on the first line of input and then the amount of T of test cases is given in a line. (T ≤ 30) N is given for the first line of each test case. (1 ≤ N ≤ 160) 
    	
    	Output Format
    	 
    	Output the number of cases of possible irreducible fractions for the first line of each test case. 
    	
    	Input Example
    	 
    	1
    	5
    	
    	Output Example
    	 
    	11
         
    **************************************************************************************/  
    // In Practice, You should use the statndard input/output
    // in order to receive a score properly.
    // Do not use file input and output. Please be very careful.
    
    #include <stdio.h>
    
    int main(void)
    {
    	int tc, T;
    
    	// The freopen function below opens input.txt file in read only mode, and afterward,
    	// the program will read from input.txt file instead of standard(keyboard) input.
    	// To test your program, you may save input data in input.txt file,
    	// and use freopen function to read from the file when using scanf function.
    	// You may remove the comment symbols(//) in the below statement and use it.
    	// But before submission, you must remove the freopen function or rewrite comment symbols(//).
    
    	 freopen("input.txt", "r", stdin);
    
    	// If you remove the statement below, your program's output may not be rocorded
    	// when your program is terminated after the time limit.
    	// For safety, please use setbuf(stdout, NULL); statement.
    
    	setbuf(stdout, NULL);
    
    	scanf("%d", &T);
    	for(tc = 0; tc < T; tc++)
    	{
    
    		/**********************************/
    		int ret=0,N=0;
    		int up=1,down=2,r=0;
    		int max=0;
    		int min=0;
    		scanf("%d", &N);
    
    		for(up=2;up<N;up++)
    		for(down=up+1;down<N+1;down++)
    		{
    			//if(down%up ==0 )
    			//	ret++;
    			max=down;
    			min=up;
    			r=max%min;
    			while(r!=0)
    			{
    				max=min;
    				min=r;
    				r=max%min;
    			}
    			if(min==1)
    				ret++;
    		}
    		/***********************************/
    		printf("%d
    ",ret+1+N);
    		// Print the answer to standard output(screen).
    
    	}
    
    	return 0;//Your program should return 0 on normal termination.
    }
    
  • 相关阅读:
    ORA-00119: invalid specification for system parameter LOCAL_LISTENER
    local_listener参数的作用!
    DDL为什么不能rollback?
    LGWR和DBWn的触发条件
    修改spfile位置
    初识oracle重做日志文件
    ORACLE AUDIT 审计
    Oracle SQL_TRACE使用小结
    Web API(六):使用Autofac实现依赖注入
    JavaScript:属性的操作
  • 原文地址:https://www.cnblogs.com/ntsk13/p/3746003.html
Copyright © 2011-2022 走看看