この問題の解説放送にて、for文中のカウンタi
をint型ではなく、long longに書き換える場面がありました。
実際にその部分をintに変えて提出したらTLEが出て、long longに直すとACされました。
for文のカウンタの型をlong longにすると、どういう変化が起きて処理速度が変わるのでしょうか。
毎回long longにしてもいいですが、何となく必要なとき以外はintにしたいので理由が知りたいです。
よろしくお願いします。
一応、以下が参考コードになります。
#include <bits/stdc++.h> using namespace std; int main(){ long long n; cin>>n; int z; int a=0; for(long long i=2;i*i<=n;++i){ int c=0; while(n%i==0){ n/=i; c++; } for(int j=1;c>0;++j,c-=j){ a++; } } if(n!=1)a++; cout<<a; }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/28 03:57
2020/06/28 10:12
2020/06/28 10:22