Coprimes - SGU 102(求互质数,水)

题目大意:给你一个正整数N,求出来不超过N 的并且与N互质的正整数的个数。

就是一个大水题~~~

代码:

#include<stdio.h>
#include<string.h>

int GCD(int m, int n)
{
    if(n == 0)
        return m;
    return GCD(n, m%n);
}

int main()
{
    int N, sum=0;

    scanf("%d", &N);

    for(int i=1; i<=N; i++)
    {
        if(GCD(i, N) == 1)
            sum++;
    }

    printf("%d\n", sum);

    return 0;
}
时间: 2024-10-29 04:23:30

Coprimes - SGU 102(求互质数,水)的相关文章

sgu 102 Coprimes

太水了, 我都不忍心发题解, 但毕竟是sgu上一道题, 我试试能不能一直这么写下去,就是求phi,上代码 #include <cstdio> #include <cstring> #include <cstdlib> #include <iostream> #include <algorithm> #include <cmath> #define N 10010 using namespace std; int get_phi(int

SGU - 102 - Coprimes (简单数论!)

SGU - 102 Coprimes Time Limit: 250MS   Memory Limit: 4096KB   64bit IO Format: %I64d & %I64u Submit Status Description For given integer N (1<=N<=104) find amount of positive numbers not greater than N that coprime with N. Let us call two positi

SGU 102

这是SGU 102的一份题解 题目要求找不大于N的自然数中与N互质的数,N的范围是1到10000. 由于N的范围小,可以用直接枚举的方法做,辗转相除求GCD. 但要考虑特殊情况:N=1时,1和它本身互质. 如果数据范围变大,如10^9,则不能用枚举. 用分解质因数的方法做. 用唯一分解定理: n>=2,设p1,p2,p3,......,pn是n的素因子,则不大于它的自然数中与它互质的有 n*(1-1/p1)*(1-1/p2)*......*(1-1/pn)个 n=1,n没有素因子,个数为1(即其

(欧拉函数) SGU 102

A - Coprimes Time Limit:250MS     Memory Limit:4096KB     64bit IO Format:%I64d & %I64u Submit Status Practice SGU 102 Appoint description:  SUB_Contest  (2013-03-04) System Crawler  (2015-01-20) Description For given integer N (1<=N<=104) find

poj 2773 利用欧拉函数求互质数

题意:找到与n互质的第 k个数 开始一看n是1e6 敲了个暴力结果tle了,后来发现k达到了 1e8 所以需要用到欧拉函数. 我们设小于n的 ,与n互质的数为  (a1,a2,a3.......a(phi(n))) 那么显然,在区间  [ k*n , (k+1)*n ]内的互质数即为 k*n+(a1,a2,a3.......a(phi(n))) 所以只需要求出 (a1,a2,a3.......a(phi(n))) 就可以利用欧拉函数快速找到后面的数 代码如下: #include <iostrea

SGU 乱搞日志

SGU 100 A+B :太神不会 SGU 101 Domino: 题目大意:有N张骨牌,两张骨牌有两面有0到6的数字,能相连当且仅当前后数字相同,问能否有将N张骨牌连接的方案?思路:裸的欧拉回路,注意自环,连通 1 //sgu101 2 #include<iostream> 3 #include<cstdio> 4 #include <math.h> 5 #include<algorithm> 6 #include<string.h> 7 #i

sgu100~199题解

老东西了..发上来吧.. Sgu题解系列  南开中学邹事成 100:A+B略 101:Domino 给n块多米诺骨牌,每张骨牌两端各有从1到6的一个数字,现在要把这些骨牌排成一列,使相邻的两块骨牌相对的面所写的数字一样. 可以把每一块多米诺骨牌想象成一条边,把面上写的数字抽象成点,比如一块骨牌正面写的1反面写的2就想象成连了一条从1到2的边,那么这就是求一条有重边的欧拉回路了,dfs一下即可. 102:Coprimes给定n求从1到n中与n互质的数的个数. 可以把n质因数分解后直接代入欧拉函数.

杭电ACM分类

杭电ACM分类: 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze 广度搜索1006 Redraiment猜想 数论:容斥定理1007 童年生活二三事 递推题1008 University 简单hash1009 目标柏林 简单模拟题1010 Rails 模拟题(堆栈)1011 Box of Bricks 简单题1012 IMMEDIATE DECODABILITY

hdu 2010~2014

hdu 2010 求一个区间内的水仙花数. 水,但是要注意给的区间的两边大小要先排序 1 #include<stdio.h> 2 int main() 3 { 4 int n,m,i,count=0,x1,x2,x3; 5 while (scanf("%d%d",&m,&n)!=EOF) 6 { 7 if (m>n) 8 { 9 i=m; 10 m=n; 11 n=i; 12 } 13 for (i=m;i<=n;i++) 14 { 15 x1=