百练---计算费马数-2869

2869:计算费马数

  • 查看
  • 提交
  • 统计
  • 提示
  • 提问
总时间限制:
1000ms
内存限制:
65536kB
描述
费马数是一个正整数序列{Fn},它的表达式为Fn = 2^2^n + 1,n = 0, 1, 2, ...

编写程序,输出前 k 个费马数 F0, F1, F2, ...

要求:
  1、不能使用指数函数power
  2、不能使用查表法,必须在程序里计算费马数
输入
非负整数k
输出
前k个费马数
样例输入
3
样例输出
3
5
17
#include<stdio.h>
#include<stdlib.h>
int f1(int n){
	int i,j;
	long f1 = 1,f2 = 1;
	for(i=0; i<n; i++){
		f1 *= 2;
	}
	for(j=0; j<f1; j++){
		f2 *= 2;
	}
	return f2;	
}
int main(){
	int k,n;
	long F = 0;
	scanf("%d",&k);
	for(n=0; n<k; n++){
		if(n==0){
			printf("3\n");
		}
		else{
			F = f1(n)+1;
			printf("%ld\n",F);
		}
		
	}
	return 0;
}

你可能感兴趣的:(百练---计算费马数-2869)