欧几里得
来源:互联网 发布:西厢记赏析网络课答案 编辑:程序博客网 时间:2024/05/17 08:56
欧几里得
时间限制:1000 ms | 内存限制:65535 KB
难度:0
- 描述
已知gcd(a,b)表示a,b的最大公约数。
现在给你一个整数n,你的任务是在区间[1,n)里面找到一个最大的x,使得gcd(x,n)等于1。
- 输入
- 输入文件的第一行是一个正整数T,表示有T组测试数据
接下来有T行,每行有一个正整数n (1<=n<=10^1000)。 - 输出
- 每组测试输出要求x。
- 样例输入
2
4
7
- 样例输出
3
6
n-1就是答案,需要用到大数减1
#include<stdio.h>#include<string.h>char n[100000];int d[100000];int e[100000];int main(){ int t; scanf("%d",&t); while(t--) { scanf("%s",n); int l; l=strlen(n); int sum=0; int p=0; memset(e,0,sizeof(e)); memset(d,0,sizeof(d)); if(l==1&&n[0]=='1') { printf("0\n"); } else { e[l-1]=1; for(int i=0; i<l; i++) { n[i]=n[i]-48; } for(int i=l-1; i>=0; i--) { sum=n[i]-e[i]; if(sum<0) { d[p++]=sum+10; n[i-1]=n[i-1]-1; } else { d[p++]=sum; } } for(int i=p-1; i>=0; i--) { if(d[i]!=0) { for(int j=i; j>=0; j--) { printf("%d",d[j]); } printf("\n"); break; } } } }}
0 0
- 欧几里得
- 欧几里得
- 欧几里得
- 【欧几里得&扩展欧几里得】
- 欧几里得和扩展欧几里得
- 欧几里得 与 扩展欧几里得
- 欧几里得&扩展欧几里得
- 欧几里得和扩展欧几里得
- 欧几里得与扩展欧几里得
- 欧几里得和扩展欧几里得
- 欧几里得 与 扩展欧几里得
- 欧几里得 扩展欧几里得
- 欧几里得与扩展欧几里得
- 欧几里得 & 扩展欧几里得
- 欧几里得 与 扩展欧几里得
- 欧几里得和扩展欧几里得
- 欧几里得与扩展欧几里得
- 欧几里得算法
- 【单页应用巨坑之History】细数History带给单页应用的噩梦
- AndroidStudio如何使用
- 硬件电路设计过程
- 访问共享文件夹
- MINA 实战
- 欧几里得
- java三线程循环有序打印ABC
- Android 命名规范 (提高代码可以读性)
- Jmeter“Java請求”使用總結
- 连续不能放相同的(贪心)
- C++顺序性容器、关联性容器与容器适配器
- linux 环境下 ,vi页面下对齐代码 老公教的
- Android应用长连接之后台服务集群开发
- 图结构练习——最短路径