NC15977. 阿汤的疑惑
描述
输入描述
从标准输入读入数据。
输入包含多组数据,第一行一个整数 T 代表数据组数。接下来依
次描述每组数据,对于每组数据:
第一行输入正整数 N,第二行输入正整数 M
【数据规模】
1≤N≤10^100
1≤M≤2^31-1
输出描述
输出到标准输出。
对于每组数据,输出一行:
余数 S 能分解出的不同质因数的个数。
示例1
输入:
2 68 40 6 180
输出:
2 2
C++(g++ 7.5.0) 解法, 执行用时: 2ms, 内存消耗: 304K, 提交时间: 2023-07-15 12:01:55
#include<bits/stdc++.h> using namespace std; #define ll long long int main() { int t; cin>>t; while(t--) { string s; ll m,yu=0; cin>>s>>m; int l=s.size(); for(int i=0;i<l;i++) { yu=((yu*10)+(s[i]-'0'))%m; } ll sum=0; for(int i=2;i*i<=yu;i++) { if(yu%i==0) { sum++; while(yu%i==0) { yu/=i; } } } if(yu>1) { sum++; } cout<<sum<<endl; } return 0; }
C++(clang++ 11.0.1) 解法, 执行用时: 3ms, 内存消耗: 380K, 提交时间: 2023-06-08 16:44:35
#include<bits/stdc++.h> using namespace std; #define ll long long int int main() { int t; cin>>t; while(t--) { string s; ll m,yu=0,da=0; cin>>s>>m; int l=s.size(); for(int i=0;i<l;i++) { yu=(yu*10+s[i]-'0')%m; } for(int i=2;i*i<=yu;i++) { if(yu%i==0) { da++; while(yu%i==0) { yu/=i; } } } if(yu>1) da++; cout<<da<<endl; } return 0; }
pypy3(pypy3.6.1) 解法, 执行用时: 40ms, 内存消耗: 18932K, 提交时间: 2020-10-26 16:51:15
import math t=int(input()) while t!=0: t-=1 a=int(input()) b=int(input()) ans=int(0) i=int(2) a%=b while a>=i*i: if a%i==0: #print(i) ans+=1; while(a%i==0): a//=i i+=1 if a!=1: ans+=1 print(ans)
Python3(3.5.2) 解法, 执行用时: 31ms, 内存消耗: 3424K, 提交时间: 2019-02-09 23:22:41
t = int(input()) for u in range(t): n = int(input()) m = int(input()) n %= m i = 2 ans = 0 while(i * i <= n): if(n % i == 0): ans += 1 while(n % i == 0):n //= i i += 1 if(n != 1):ans += 1 print(ans)