栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

poj 2773 Happy 2006

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

poj 2773 Happy 2006

#include <cstdio>typedef long long LL;#define SIZE 1000000int fac[ SIZE + 5 ], tot, m, k;void divide( int x ){tot = 0;for( int i = 2; i * i <= x; ++i ){if( x % i == 0 ){fac[ tot++ ] = i;while( x % i == 0 ) x /= i;}}if( x > 1 ) fac[ tot++ ] = x;}LL solve( LL x ){LL ans = 0;for( int i = 1; i < ( 1 << tot ); ++i ){LL bits = 0;LL mult = 1;for( int j = 0; j < tot; ++j ){if( i & ( 1 << j ) ) {bits++;mult *= fac[j];}}if( bits & 1 ) ans += x / mult;elseans -= x / mult;}return x - ans;}int main(){while( ~scanf( "%d %d", &m, &k ) ){divide( m );LL l = 1, r = ( 1LL << 33 ), mid, tmp, ans;while( l < r ){mid = ( l + r ) >> 1;tmp = solve( mid );if( tmp >= k )r = mid;else l = mid + 1;}printf( "%lldn", l );}}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/378485.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号